![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Log_Off [D7, WinXP]
Poison © (2004-01-10 04:29:00)Подскажите как выполнить Log off без прибивания всех приложений текущего пользователя. О ExitWindowsEx - знаю, но, наверное, не все :)
Cobalt (2004-01-14 09:28:00) [1]В W2K и WinXP:
%windir%\System32\rundll32.exe user32.dll,LockWorkStation
Игорь Шевченко (2004-01-13 17:55:00) [2]Можно попробовать поискать в сторону WTSxxxx функций
YuRock (2004-01-13 10:15:00) [3]> Poison (13.01.04 01:16) [4]
То же, что в [3], только вместо
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0)
надо
ExitWindowsEx(EWX_SHUTDOWN or EWX_LOGOFF, 0)
Если не изменяет память, EWX_LOGOFF и есть Switch User.
Попробуйте.
Poison (2004-01-13 01:16:00) [4]Немного запарился. Точнее не Log Off, а Switch User.
Подскажите, плиз.
YuRock (2004-01-11 19:50:00) [5]Если я правильно понял тему, то вот (в NT/2k/XP):
var
hToken : THANDLE;
tkp : TTokenPrivileges;
rl : DWORD;
begin
OpenProcessToken(GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY), hToken);
if not (LookupPrivilegeValue(nil, LPSTR('SeShutdownPrivilege'), tkp.Privileges[0].Luid)) then
begin
MessageBox(0, 'Нет локальных привилегий', '', MB_ICONSTOP);
Exit;
end;
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, rl);
if not ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0) then
MessageBox(0, 'Не получилось...', '', MB_ICONERROR);
end.
Иван Шихалев (2004-01-11 19:32:00) [6]> Подскажите как выполнить Log off без прибивания
> всех приложений текущего пользователя.
Какой же это Log Off?
Poison (2004-01-10 23:47:00) [7]Up!