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

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

Как из сервиса определить залогинился юзер или нет? [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 есть какой признак?


Наверх

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