![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранитель экрана: запуск и выход
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, ...)