Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

LockStation и PowerOff в NT4   Найти похожие ветки 

 
-=GaLaN=- ©   (2004-01-23 13:54) [0]

У меня два вопроса.
1) Каким образом можно сделать LockStation в NT4 программно? Вызов

ShellExecute(0, "open", Pchar("rundll32.exe"), Pchar("USER32.DLL,LockWorkStation"), nil, SW_ShowNormal);

не помогает, ибо такая функция есть только в NT5 и выше. Но ведь сам windows может сделать LockStation! Как?
2) Перед вызовом:

ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);

как обычно получаем привелегии:

procedure GetPriv;
var
hToken: THandle;
tkp: TTokenPrivileges;
tkpo: TTokenPrivileges;
zero: DWORD;
begin
 zero:=0;
 if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin
   MessageBox(0, PChar("Error"), "OpenProcessToken() Failed", MB_OK );
   Exit;
 end;
 if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin
   MessageBox(0, PChar("Error"), "OpenProcessToken() Failed", MB_OK );
   Exit;
 end;
 if not LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid) then begin
   MessageBox(0, PChar("Error"), "LookupPrivilegeValue() Failed", MB_OK );
   Exit;
 end;
 tkp.PrivilegeCount:=1;
 tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, False, tkp, SizeOf(TTokenPrivileges), tkpo, zero);
end;

И все это прекрасно работает в том случае, если запуск идет от Администратора или пользователя с его правами. Но если прав администратора нет, завершение работы не работает, несмотря на то, что сама Windows через Turn Off Computer может компьютер выключить. Как же быть?


 
-=GaLaN=- ©   (2004-02-07 15:48) [1]

Странно. Неужели проблемы _невозможно_ решить?


 
-=GaLaN=- ©   (2004-02-13 16:19) [2]

Мда... :(



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
7-1076588783
h0use
2004-02-12 15:26
2004.04.18
Определение типа ОС


1-1080665760
Jul
2004-03-30 20:56
2004.04.18
Access violation при использовании функции из DLL


3-1079531549
Vanoid
2004-03-17 16:52
2004.04.18
Офигеете: отмена выполнения асинхронных запросов ADOQuery. MSSQL


14-1080030832
Алексей
2004-03-23 11:33
2004.04.18
Где взять


7-1076589319
turonix
2004-02-12 15:35
2004.04.18
Имуляция ввода текста с клавиатуры