powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Активация события программы при включении ScreenSaver
5 сообщений из 5, страница 1 из 1
Активация события программы при включении ScreenSaver
    #35235996
DTri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем времени суточек,

Может кто сталкивался или делал по необходимости,
Необходимо чтобы программа при включении ScreenSaver Windows отсчитала какоето время и подала звуковой сигнал.

вопрос следующий, как поймать событие Windows, что запущен ScreenSaver?
...
Рейтинг: 0 / 0
Активация события программы при включении ScreenSaver
    #35236280
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По таймеру перебирать процессы пока среди них не найдется процесс с расширением scr.
...
Рейтинг: 0 / 0
Активация события программы при включении ScreenSaver
    #35237200
DTri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это несколько не то, ине точно надо знать что сработал Screen Saver
...
Рейтинг: 0 / 0
Активация события программы при включении ScreenSaver
    #35238742
SoftParanoik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A screen saver will start, pending your choices, whenever there is no mouse or keyboard activity for the current screen saver timeout period. Some applications need to know when the screen saver has started in order to do some background processing, for example, writing or updating the data to disk.



MORE INFORMATION
When a screen saver starts, it posts a WM_SYSCOMMAND message to the foreground window with WPARAM as SC_SCREENSAVE. To detect and notify other applications of this event, use the following steps:

Install WH_GETMESSAGE Global hook.

hHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)HookProc,
(HINSTANCE) hMod, 0);



Define a user-defined registered message for example, "ScreenSaverStarted".

UINT WM_SCRNSVSTART = RegisterWindowMessage("ScreenSaverStarted");



Broadcast this message to all top-level windows in the system.

LRESULT CALLBACK HookProc(UINT code , WPARAM wParam, LPARAM lParam)
{
MSG *msg = (MSG *)lParam;
if ( msg->message == WM_SYSCOMMAND &&
msg->wParam == SC_SCREENSAVE)
{ // broadcast message to all top-level windows
// Or execute some other code here
PostMessage(HWND_BROADCAST, WM_SCRNSVSTART, 0, 0);
}
// Always call next hook in chain
return CallNextHookEx(hHook, code, wParam, lParam);
}



Uninstall the hook.

UnhookWindowsHookEx(hHook);
...
Рейтинг: 0 / 0
Активация события программы при включении ScreenSaver
    #35238747
SoftParanoik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A screen saver will start, pending your choices, whenever there is no mouse or keyboard activity for the current screen saver timeout period. Some applications need to know when the screen saver has started in order to do some background processing, for example, writing or updating the data to disk.



MORE INFORMATION
When a screen saver starts, it posts a WM_SYSCOMMAND message to the foreground window with WPARAM as SC_SCREENSAVE. To detect and notify other applications of this event, use the following steps:

Install WH_GETMESSAGE Global hook.

hHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)HookProc,
(HINSTANCE) hMod, 0);



Define a user-defined registered message for example, "ScreenSaverStarted".

UINT WM_SCRNSVSTART = RegisterWindowMessage("ScreenSaverStarted");



Broadcast this message to all top-level windows in the system.

LRESULT CALLBACK HookProc(UINT code , WPARAM wParam, LPARAM lParam)
{
MSG *msg = (MSG *)lParam;
if ( msg->message == WM_SYSCOMMAND &&
msg->wParam == SC_SCREENSAVE)
{ // broadcast message to all top-level windows
// Or execute some other code here
PostMessage(HWND_BROADCAST, WM_SCRNSVSTART, 0, 0);
}
// Always call next hook in chain
return CallNextHookEx(hHook, code, wParam, lParam);
}



Uninstall the hook.

UnhookWindowsHookEx(hHook);
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Активация события программы при включении ScreenSaver
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]