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

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

Хранитель экрана: запуск и выход


dataMaster ©   (2003-08-01 15:24:00) 

Всем привет! Кто-нибудь знает, как из своей программы можно определить, что Windows запустила (или пытается запустить) ScreenSaver, а также, что ScreenSaver завершил свою работу?


dataMaster   (2003-08-04 09:52:00) [1]

2Echelon © (01.08.03 18:03)
SPI_GETSCREENSAVEACTIVE тоже не помог...

2Pindos © (02.08.03 01:25)
Кнопки мне не нужны :-)

2Yanis © (02.08.03 02:34)
Это немножко не то ;-)


Yanis   (2003-08-02 02:34:00) [2]

Да уж. :))

SendMessage(Application.Handle,WM_SYSCOMMAND,SC_SCREENSAVE,0);


Pindos   (2003-08-02 01:25:00) [3]

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, nil, 0); - В 98 Windows"е отключает нажатие Ctrl+Alt+Del, At+Tab, Alt+Esc...

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, nil, 0); - включает нажатие вышеуказанных сочетаний!!!

А как про заставку узнать я не знаю
PindosInc®


Echelon   (2003-08-01 18:03:00) [4]

Конечно не так, если не ошибаюсь нужно писать SPI_GETSCREENSAVEACTIVE, а SPI_SCREENSAVERRUNNING
используется для того чтобы активировать этот режим.
Посмотри SDK.


dataMaster   (2003-08-01 16:52:00) [5]

Делаю так:

var
SaverActive:boolean;
begin
repeat
Application.ProcessMessages;
( SPI_SCREENSAVERRUNNING, 0, @SaverActive, 0)

Делаю так:

var
SaverActive:boolean;
begin
repeat
Application.ProcessMessages;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @SaverActive, 0);
until SaverActive=True;
Halt;
end;


и цикл не завершается, даже если хранитель экрана запустился... Может что не так сделал?


Игорь Шевченко   (2003-08-01 15:41:00) [6]

В win2k/winXp через gina.dll неплохой способ. Описан вроде на rsdn.

В Win98 можно попробовать узнать через SystemParametersInfo (SPI_SCREENSAVERRUNNING, ...)



Наверх

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