Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Бьюсь над проблемой: как узнать, что скринсэйвер работает? [D6, Win95/98, NT4, WinXP]


Страницы:   1 2

Song ©   (2002-09-03 14:31:00) 

Отлавливаю WM_SYSCOOMAND c WParam=SC_SCREESAVE
по наступлению события включаю выполнениие нити (TThread), где постоянно опрашиваю:

SystemParametersInfo(SPI_GETSCREENSAVERRUNNING,0,@IsActive,0);
IF not IsActive then ...


При выключении хранителя экранаусловие не срабатывает!

Пробовал также через GetActiveWindow(). Почему-то на второй "итерации" TThread.Synchronize GetActiveWindow() возвращает ноль, хотя заставка запущена.

MSDN также советует через OpenDeskTop(), но.. это дремучая вещь, хотя и придётся сделать, если не получится.
Может у кого идеи есть?


Виктор Щербаков   (2002-09-03 16:06:00) [21]

Song © (03.09.02 15:54)
Ага. Она вообще без изменений оставляет значение по адресу @IsActive. Наверно Билл и его ребята оставили это на сладкое, а потом и вовсе забыли :)


Song   (2002-09-03 15:54:00) [22]

Не работает SPI_GETSCREENSAVERRUNNING в Windows98SE, хоть убей...


Виктор Щербаков   (2002-09-03 15:15:00) [23]

Вот здесь вроде что-то есть:
http://cw.net.gaming.ru/Russian/ARTS/Screen_Saver.html


Внук   (2002-09-03 14:45:00) [24]

Завтра, постараюсь не забыть, если не соврал, конечно :)


Song   (2002-09-03 14:43:00) [25]

О.. класс, а могёшь мне на почту скинуть? Надо...


Внук   (2002-09-03 14:37:00) [26]

Если я не брежу, на время работы ScreenSaver в реестре выставляется флажок... Надо будет поглядеть дома книгу


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо