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

Вниз

Неужели в Windows 2000/XP не выключить питание?   Найти похожие ветки 

 
Hanson3003   (2002-11-29 09:50) [0]

ExitWindowsEx и InitiateSystemShutDown не работают.


 
Слесарь Матерящийся   (2002-11-29 10:52) [1]

Как не работают? Из меню Пуск её можно выключить -- значит, работают!


 
Song ©   (2002-11-29 11:06) [2]

Надо права иметь соответствующие.


 
Ich Hasse ©   (2002-11-29 20:15) [3]

Конечно же можно, как? Вот как:


program shutdown;
uses Windows, messages;

procedure ShutSystem;
var
handle_: THandle;
n: DWORD;
luid: TLargeInteger;
priv: TOKEN_PRIVILEGES;
ver: TOSVERSIONINFO;

begin
ver.dwOSVersionInfoSize := Sizeof(ver);
GetVersionEx(ver);
if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, handle_)
then
if LookupPrivilegeValue(nil, "SeShutdownPrivilege", luid)
then begin priv.PrivilegeCount := 1;
priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; priv.Privileges[0].Luid := luid;
AdjustTokenPrivileges(handle_, false, priv, 0, nil, n);
end
else writeln("Ошибка")
else writeln("Ошибка ");
end
else writeln("Ошибка ");
if not ExitWindowsEx(EWX_POWEROFF,1)
then writeln("Ошибка"); end;

begin
ShutSystem;
end.



Вот именно то, что тебе надо, проверял работает и в 2K и в XP;


 
Hanson3003   (2002-11-30 13:43) [4]

Спасибо. Победил



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

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

Наверх




Память: 0.47 MB
Время: 0.023 c
14-49207
TTCustomDelphiMaster
2002-12-27 15:17
2003.01.16
Милосердие


14-49201
Ketmar
2002-12-28 20:26
2003.01.16
а Баба-Яга против!


1-49019
qwerty2
2003-01-07 16:56
2003.01.16
Обойти все Control ы на форме


14-49286
lak_b
2002-12-26 15:27
2003.01.16
как бы вы назвали прогу, которая делает FAQ-и?


1-48990
pumba
2003-01-02 08:15
2003.01.16
Олимпиадная задача 2