Re: Logoff current user in Windows NT

From
Victor ()
To
All
Date
2001-06-12T18:16:20Z
Area
SU.WINDOWS.NT.PROG
From: "Victor" <VictorK@mastereye.com>


"Demid" <demid@pstu.edu> wrote in message news:3b260ec2$1@news.donin.com...
>
> "Victor" <VictorK@mastereye.com> wrote in message
news:3yOT6.76$io1.408168@news...
> >
> >
> > Отдельный процесс это лишний геморрой, можно сделать проще прямо из
сервиса:
> > - сохраняешь текущую станцию и десктоп;
> > - открываешь WinSta0 и устанавливаешь, как текущую станцию для процесса;
>
> У меня были сомнения в возможности поменять Window Station и Desktop
> у запущенной службы, но я попробую.

Все сомнения разрешаются экспериментом - не стесняйся все  пробовать почаще
:-))

>
> > - открываешь Default десктоп и вызываешь SetThreadDesktop;
> > - вызываешь ExitWindowsEx
> > - восстанавливаешь первоначальный десктоп и станцию;
> >
> > и все в полном ажуре! Да, незабудь для сервиса подогнать привилегию
> > SE_SHUTDOWN_NAME.
>
> А разве это обязательно для LOGOFF? В MSDN написано, что только для
> SHUTDOWN.
>

Ну у меня просто один и тот-же код гасит комп или логофит юзера. Потому
для всего процесса и назначено заранее.

> >
> > При таком подходе тебе не надо знать ни имя пользователя, ни его пароль
:-))
>
> Это хорошо... :) Только имя пользователя мне все равно знать надо. Хотя
> бы для того, чтобы определить, надо ли этого пользователя отрубать.
> И с этим тоже проблемы (см. субж "Много непоняток с Windows API").

Используй ф-ию NetWkstaUserGetInfo с уровнем 1, но только из контекста
текущего юзера,
тогда будешь знать все - юзера, домен, контроллер домена

Успехов!


--- ifmail v.2.15dev5
 * Origin: EUnet AG, Switzerland. A KPNQwest Company. (2:5020/400)