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

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

вопрос следующий, как поймать событие Windows, что запущен ScreenSaver?
...
Рейтинг: 0 / 0
04.04.2008, 15:52
    #35236280
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация события программы при включении ScreenSaver
По таймеру перебирать процессы пока среди них не найдется процесс с расширением scr.
...
Рейтинг: 0 / 0
05.04.2008, 00:38
    #35237200
DTri
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация события программы при включении ScreenSaver
Это несколько не то, ине точно надо знать что сработал Screen Saver
...
Рейтинг: 0 / 0
07.04.2008, 10:08
    #35238742
SoftParanoik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация события программы при включении ScreenSaver
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
07.04.2008, 10:10
    #35238747
SoftParanoik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация события программы при включении ScreenSaver
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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Активация события программы при включении ScreenSaver / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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