Einzelnen Beitrag anzeigen

Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#3

Re: Computer in den Standbymodus fahren

  Alt 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 :.. .
  Mit Zitat antworten Zitat