Форум: "Система";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизСервис Найти похожие ветки
← →
Darkwin (2003-02-12 18:48) [0]Как в своём сервисе можно понять, что был выполнен выход из системы, а за тем вход, или смена пользователя?
← →
Набережных С. (2003-02-12 23:45) [1]Функцией SetConsoleCtrlHandler регистрируешь функцию обратного вызова типа
function CtrlHandler(CtrlCode: DWord): bool; stdcall;
При закрытии сессии она будет вызвана с
CtrlCode = CTRL_LOGOFF_EVENT.
Причем дважды - перед самым закрытием и сразу после. Есть ли интерактивный юзер в текущий момент можно узнать по, например, длине SID юзера интерактивной станции.
← →
Diamond Cat (2003-02-13 00:39) [2]сообщение WM_USERCHANGED посылается всем окнам при смене юзера
← →
Набережных С. (2003-02-13 05:58) [3]>Diamond Cat © (13.02.03 00:39)
Ты о чем?
← →
Набережных С. (2003-02-14 08:31) [4]>Diamond Cat ©
Понятно. Март приближается...
← →
Овчинников Денис (2003-02-14 09:49) [5]>Diamond Cat
Под NT/Win2k это сообщение не поддерживается (так написано в MSDN)
← →
Овчинников Денис (2003-02-14 09:50) [6]>Набережных С
А если приложение не консольного типа?
← →
Набережных С. (2003-02-14 09:56) [7]>Овчинников Денис
Не важно.
← →
Darkwin (2003-02-14 12:54) [8]
> Набережных С. (12.02.03 23:45)
Спасибо за подробное объяснение.
А как узнать этот SID?
← →
Набережных С. (2003-02-14 17:34) [9]Получать SID не обязательно, достаточно проверить требуемый под него размер буфера. Что-то типа этого:
Sz: DWORD;
hWSta: THandle;
Sz:=0;
hWSta:=OpenWindowStation("WinSta0",false,WINSTA_READATTRIBUTES);
if GetUserObjectInformation(hWSta,UOI_USER_SID,nil,0,Sz) then
// интерактивного юзера нет
else if GetLastError = ERROR_INSUFFICIENT_BUFFER then
// интерактивный юзер есть
else - что-то не так
CloseWindowStation(hWSta);
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c