Hibernacja w XP

0

Jak z poziomu delphi zahibernować XP ?

0

[code]{$WARN SYMBOL_PLATFORM OFF}
procedure SuspendOrHibernate( ASuspend,AForce : Boolean );
var
iVersionInfo: TOSVersionInfo;
iToken : cardinal;
iPriveleg : TTokenPrivileges;
iaresult : cardinal;
begin
FillChar (iPriveleg, SizeOf (iPriveleg), #0);

iVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);

GetVersionEx(iVersionInfo);

if iVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
Win32Check( OpenProcessToken (GetCurrentProcess,
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, iToken) );
Win32Check( LookupPrivilegeValue (NIL,'SeShutdownPrivilege',
iPriveleg.Privileges[0].Luid) );

iPriveleg.PrivilegeCount := 1;
iPriveleg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

Win32Check(AdjustTokenPrivileges(iToken,False,iPriveleg,
Sizeof(iPriveleg), iPriveleg, iaresult));

end;

Win32Check( SetSystemPowerState( ASuspend, AForce ) );
end;[/code]

0

Dziękuję. [browar]

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