Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
Delphi 7 Personal
|
Re: Computer in den Standbymodus fahren
28. Jan 2005, 12:17
Zitat von Delphi Star:
Wie kann man aus einer Delphi-Anwendung heraus den Computer in den Standbymodus fahren
Es muss nur auf Windows NT-Systemen funktionieren.
versuchs mal damit:
Delphi-Quellcode:
function Power(idx: byte): Boolean;
var TokHandle, ProcHandle: THandle;
TokPriv, TokPrivPrev: TTokenPrivileges;
RetLen: DWORD;
begin
Result := False;
ProcHandle := OpenProcess(PROCESS_ALL_ACCESS, True, GetCurrentProcessID);
try
if not OpenProcessToken(ProcHandle, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokHandle) then Halt(1);
finally
CloseHandle(ProcHandle);
end;
try
if LookupPrivilegeValue('', 'SeShutdownPrivilege', TokPriv.Privileges[0].Luid) then begin
TokPriv.PrivilegeCount := 1;
TokPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(TokHandle, False, TokPriv, SizeOf(TokPrivPrev), TokPrivPrev, RetLen);
end;
finally
CloseHandle(TokHandle);
end;
case idx of
1: Result := ExitWindowsEx(EWX_LOGOFF , 0); // logoff
2: Result := ExitWindowsEx(EWX_REBOOT , 0); // reboot
3: Result := ExitWindowsEx(EWX_SHUTDOWN, 0); // shutdown
4: Result := SetSystemPowerState(True, True); // suspend
5: Result := SetSystemPowerState(False, True); // hibernate
end;
end;
diese Function hab ich mal irgendwo im Netz gefunden, weisaber nicht mehr wo...
funktioniert bei mir unter XP+SP2 einwandfrei...
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
|
|
Zitat
|