Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сервис [D6, Win2k, WinXP]


Darkwin ©   (2003-02-12 18:48:00) 

Как в своём сервисе можно понять, что был выполнен выход из системы, а за тем вход, или смена пользователя?


Набережных С.   (2003-02-14 17:34:00) [1]

Получать 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);


Darkwin   (2003-02-14 12:54:00) [2]


> Набережных С. (12.02.03 23:45)

Спасибо за подробное объяснение.
А как узнать этот SID?


Набережных С.   (2003-02-14 09:56:00) [3]

>Овчинников Денис

Не важно.


Овчинников Денис   (2003-02-14 09:50:00) [4]

>Набережных С

А если приложение не консольного типа?


Овчинников Денис   (2003-02-14 09:49:00) [5]

>Diamond Cat

Под NT/Win2k это сообщение не поддерживается (так написано в MSDN)


Набережных С.   (2003-02-14 08:31:00) [6]

>Diamond Cat ©

Понятно. Март приближается...


Набережных С.   (2003-02-13 05:58:00) [7]

>Diamond Cat © (13.02.03 00:39)

Ты о чем?


Diamond Cat   (2003-02-13 00:39:00) [8]

сообщение WM_USERCHANGED посылается всем окнам при смене юзера


Набережных С.   (2003-02-12 23:45:00) [9]

Функцией SetConsoleCtrlHandler регистрируешь функцию обратного вызова типа

function CtrlHandler(CtrlCode: DWord): bool; stdcall;

При закрытии сессии она будет вызвана с
CtrlCode = CTRL_LOGOFF_EVENT.
Причем дважды - перед самым закрытием и сразу после. Есть ли интерактивный юзер в текущий момент можно узнать по, например, длине SID юзера интерактивной станции.


Наверх

Титульная страница Поиск, карта сайта Написать письмо