Форум: "WinAPI";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
ВнизНеужели в 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.009 c