AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wie kann man einen Computer über das Netwerk herunterfahren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann man einen Computer über das Netwerk herunterfahren

Ein Thema von Delphi Star · begonnen am 19. Mai 2004 · letzter Beitrag vom 20. Mai 2004
 
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#13

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

  Alt 19. Mai 2004, 17:54
hier das mal gefunden


Delphi-Quellcode:
{-----------------------------------------------------------------------------
Unit Name: Shutdown
Author:    Manfred Ruzicka
History:  Mit dieser Unit ist es möglich einen Windows NT /2000 Computer
        über das Netzwerk herunterzufahren, und diesen Vorgang wieder abzubrechen.

        Erklärung der Variablen:
            System: string      - Computername oder IP-Adresse
            Nachricht: string  - Die Nachricht die als Warnung erscheinen soll
                            (nur wenn countdoen <> 0)
            force: boolean      - Ob der Computer bei nicht gespeicherten Dokumenten
                            nachfragt (true = keine nachfrage)
            reboot: boolean      - true = startet den Computer neu
            countdown: integer - gibt die Zeit in Sekunden an, die vor dem
                            Shutdown vergehen soll (0 = keine Warnung)
-----------------------------------------------------------------------------}


unit shutdown;

interface

uses
  Windows,
  StdCtrls;

  procedure shut(system, nachricht: string; force, reboot: boolean; countdown: integer);
  procedure abortshut(system: string);

implementation

  const
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
  var
  hdlg: DWORD = 0;

procedure shut(system, nachricht: string; force, reboot: boolean; countdown: integer);
var
  otoken, hToken: THandle;
  tp: TTokenPrivileges;
  h: Dword;
begin
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
  otoken := htoken;
  LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, tp.Privileges[0].luid);
  tp.privilegecount := 1;
  tp.privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  h := 0;
  AdjustTokenPrivileges(hToken, False, tp, 0, PTokenPrivileges(nil)^, h);
  InitiateSystemShutdown(PChar(system), pchar(nachricht), countdown, force, reboot);
  tp.privilegecount := 1;
  tp.privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  h := 0;
  AdjustTokenPrivileges(oToken, False, tp, 0, PTokenPrivileges(nil)^, h);
  CloseHandle(hToken);
end;

procedure abortshut(system: string);
var
  hToken: THandle;
  tp: TTokenPrivileges;
  h: Dword;
begin
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
  LookupPrivilegeValue(pchar(system), SE_SHUTDOWN_NAME, tp.Privileges[0].luid);
  tp.privilegecount := 1;
  tp.privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  h := 0;
  AdjustTokenPrivileges(hToken, False, tp, 0, PTokenPrivileges(nil)^, h);
  CloseHandle(hToken);
  abortSystemShutdown(pchar(system));
end;

end.
Nico Müller
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz