![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из сервиса определить залогинился юзер или нет? [D7, WinXP]
neodiX © (2004-03-25 10:48:00)Есть winnt сервис, как определить юзер залогинился или все еще показывается окно winlogon?
neodiX (2004-03-25 18:23:00) [1]Teма закрыта.
Спасибо И.Шевченко.
neodiX (2004-03-25 17:48:00) [2]странно но используя
OpenWindowStationиEnumDesktops,EnumDesktopsвсегдавозвращает два десктопа: winlogon и default, независимо от того locked, logged out или после рестарта комп...
есть еще какие идеи?
neodiX (2004-03-25 14:36:00) [3]я точно определился что мне надо:
надо узнать есть ли десктоп default не используя функцию switchdesktop
тот вариант который мне предложили работает прекрасно, если окно winlogon вызывается уже с какого то десктопа, т.е. после логона. Если же winlogon окно появилось после рестарта или после запуска компа, то никакого default десктопа нет и быть не может и поэтому при использовании switchdesktop('default....)winlogon окно просто исчезает, т.е. имхо пробует переключится на десктоп дефаулт которого нет.
а EnumDesktops эт может идея! просто просмотретьвсе дестопы.. сейчас проверю...
BiN (2004-03-25 14:26:00) [4]для того что бы провертить есть ли десктоп default или нет, надо юзать switchdesktop
в той теме тебе конкретно ответили на твой вопрос, как узнать факт заблокированиякомпьютера.
Чтобы узнать о существовании десктопа default, можно пользоваться и EnumDesktops. Ты бы сам определился, что именно тебе надо?
neodiX (2004-03-25 14:11:00) [5]и еще:
>А из сервиса отловить логон можно, наверно.....
мне не надо отлавливать, тока факт нужен существования пользовательской сессии
neodiX (2004-03-25 14:09:00) [6]В том то и дело что я проверяю какой десктоп существует с opendesktop, switchdesktop. Но для того что бы провертить есть ли десктоп default или нет, надо юзать switchdesktop, и здесь происходит самое главное:
после загрузки компьютерапоказывается winlogon окно, я проверяю есть ли default desktop с помощью opendesktop, switchdesktop (смотри мой пост http://www.delphimaster.ru/cgi-bin/forum.pl?id=1079991197&n=2), так вот, окна то ясно что нет, но как только я использую switchdesktop для этой проверки - winlogon окно исчезает! Поэтому мне и нужна другая альтернатива опредиления залогинился юзер или нет.
Я выделил 'после загрузки компьютера' т.к если я сам вызываю winlogon окно с уже какого то десктопа (default) то все ОК.
BiN (2004-03-25 13:57:00) [7]ты хочешь сказать ....
нет, просто эта ветка для того и существует, чтобы запускать программы при входе пользователя.
А из сервиса отловитьлогон можно, наверно, только перехватом, по-крайней мере не помню никакого стагдартного способа... Узнатьже сам факт существования пользовательской сессии можно по условию, сущ-ет ли в Winsta0 в дан. момент десктоп с именем, отличным от "Winlogon".
neodiX (2004-03-25 13:26:00) [8]2 BiN:
ты хочешь сказать что в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run чего то нехватает если юзер незалогинин? У меня тут тока winreg.exe есть...
BiN (2004-03-25 13:17:00) [9]ага, называется ...\windows\currentversion\run
neodiX (2004-03-25 13:11:00) [10]я тут думаю может в registry в ветке HKEY_CURRENT_USER есть какой признак?