Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Вниз

Работа с COM   Найти похожие ветки 

 
Ал   (2003-04-18 16:48) [0]

uses
KOLComObj, ShlObj;

procedure TurnActiveDesktop(state:Bool);
const
CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";
var
ie:IActiveDesktop;
opt:TCOMPONENTSOPT;
begin
ie:= CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
opt.dwSize := sizeof(opt);
opt.fActiveDesktop := state;
opt.fEnableComponents := state;
ie.SetDesktopItemOptions(opt,0);
ie.ApplyChanges(AD_APPLY_REFRESH);
end;

Работает, но:

под Win98 - срабатывает только один раз за сеанс работы программы. Запустил программу, нажал кнопку - вызвал функцию - выключил ActiveDesktop. Программа продолжает работать. Если при работающей программе снова вручную включить ActiveDesktop, а затем нажать кнопку - вызвать функцию - ActiveDesktop не выключается.

Хотя при смене обоев таким образом все аккуратно срабатывает.

Хотя дело не в KOL (такая ситуация возникает и без KOL с Uses ComObj), но люди здесь умные, может кто что и подскажет.
Возможно, нужно(ненужно) пересоздавать COM-объект(перерегистрировать класс)? Или D4 подводит? Не знаю.


 
Boguslaw   (2003-04-18 17:46) [1]

I don"t know COM objects well , but where You free COM object created by CreateComObject ? I think You should create COM object once at startup not in TurnActiveDesktop.

Boguslaw



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.01 c
9-25166
Ник М. Цов
2003-06-07 20:35
2004.01.09
Текстовые квесты: Второе пришествие


7-25628
Ev1972
2003-10-27 10:58
2004.01.09
Как программно определить путь к папке


4-25651
Колян_К
2003-11-06 12:14
2004.01.09
Что делает mouse.destroy;


1-25305
CraKer
2003-12-23 01:31
2004.01.09
Открытие док файла..


7-25635
Yegor
2003-10-25 21:05
2004.01.09
Скорость





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский