det andet er om der er en der kan sige hvordan man kan få programmet til at slukke computeren eller restarte den?
Følgende genstarter computeren:
<pre>
var
Thread, Token: THandle;
RetLen, BufLen: cardinal;
Luid: TLargeInteger;
TokenPrivileges: TTokenPrivileges;
LUIDAndAttributes: TLUIDAndAttributes;
begin
Token := 0;
BufLen := 0;
Thread := GetCurrentProcess;
OpenProcessToken(Thread, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', Luid);
LUIDAndAttributes.Luid := Luid;
LUIDAndAttributes.Attributes := SE_PRIVILEGE_ENABLED;
TokenPrivileges.PrivilegeCount := 1;
TokenPrivileges.Privileges[0] := LUIDAndAttributes;
AdjustTokenPrivileges(Token, False, TokenPrivileges, BufLen, nil, RetLen);
ExitWindowsEx(EWX_REBOOT, 0);
end;
</pre>
Det burde virke både i Win9x og under Win2000/XP. Slå ExitWindowsEx op i hjælpen for at finde ud af hvordan du lukker maskinen ned i stedet for at genstarte.