Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#22

Re: Wie kann man einen Computer über das Netwerk herunterfah

  Alt 19. Mai 2004, 20:57
Nachtrag:
Delphi-Quellcode:
function EnableShutDownPrivilege: Boolean;
var
  vi: TOSVersionInfo;
  hToken: THandle;
  tp: TTokenPrivileges;
  h: DWord;
begin
  result := False;
  vi.dwOSVersionInfoSize := SizeOf(vi);
  GetVersionEx(vi);
  if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then // Windows NT
  begin
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken);
    LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
    tp.PrivilegeCount := 1;
    tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    h := 0;
    result := AdjustTokenPrivileges(hToken, False, tp, 0,
      PTokenPrivileges(nil)^, h);
    CloseHandle(hToken);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if EnableShutDownPrivilege then
    if not InitiateSystemShutdown('HEPU', nil, 0, True, False) then
      ShowMessage(SysErrorMessage(GetlastError));
end;
GetLastError liefert mit immer:
Zitat:
Der Netzwerkpfad wurde nicht gefunden
Auch wenn ich den Rechnernamen so "\\HEPU" angebe. Rechner befindet sich in der gleichen Arbeitsgruppe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat