Wyłączanie kompa od XP

0

Ja mojego XP wyączałem tak:
WinEXEc('shutdown -s -f', sw_Normal);
jednak to nie wyłączało zasilania ("można teraz bedpiecznie wyłączyć koputer") - (tak mam płyte ATX - to tak jakby ktoś mnie chciał pouczyć :)))

Czy to jedyny sposób?

0

function SetPrivilege(privilegeName: string; enable: boolean): boolean;
var
tpPrev, tp: TTokenPrivileges;
token: THandle;
dwRetLen: DWord;
begin
result := False;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, token);
tp.PrivilegeCount := 1;
if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID) then
begin
if enable then
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
tp.Privileges[0].Attributes := 0;
dwRetLen := 0;
result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);
end;
CloseHandle(token);
end;
begin
SetPrivilege('SeShutdownPrivilege', true);
begin
ExitWindowsEx(EWX_POWEROFF or EWX_FORCE,0);
ExitWindowsEx(EWX_POWEROFF,0);
SetPrivilege('SeShutdownPrivilege', false);
end;

Oto jak wyłączyć XP można go wkleić np. pod Button-a

1 użytkowników online, w tym zalogowanych: 0, gości: 1