СообЧа > База Знаний > Программирование > Delphi

Вопрос

В общем, хочется, чтобы в Windows XP программа-резидент получала сообщения о том, что произошел Fast User Switching.

Ответ

Прога должна получать мессаги

WM_WTSSESSION_CHANGE = $02b1

wParam = 7 при выходе юзера в экран приветствия,

wParam = 8 при входе обратно.

Для этого надо вызвать след. ф-ю:

function WTSRegisterSessionNotification(hWnd: HWND; dwFlags: DWORD): BOOL; stdcall; external 'wtsapi32.dll';

hWnd ставишь главного окна проги, dwFlags ставишь 0 для текущего юзера, 1 для сообщений о всех юзерах (Вроде бы. Тогда lParam будет ID сессии, не знаю как это понимать)

При окончании работы проги надо вызвать:

function WTSUnRegisterSessionNotification(hWnd: HWND): BOOL; stdcall; external 'wtsapi32.dll';

А вообще это из MSDN взято.

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация