Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wie kann man einen Computer über das Netwerk herunterfahren (https://www.delphipraxis.net/22589-wie-kann-man-einen-computer-ueber-das-netwerk-herunterfahren.html)

Delphi Star 19. Mai 2004 17:53

Re: Wie kann man einen Computer über das Netwerk herunterfah
 
Wo denn im Code-Libary

Zottel 19. Mai 2004 17:54

Re: Wie kann man einen Computer über das Netwerk herunterfah
 
Such nach WOL oder WakeUpOnLan. Eine sicherheit solltest du da allerdings einbauen, wenn du mehrere rechner so hochfahren willst: mach ein delay von einer sekunde zwischen dem hochfahren rein, sonst fliegt die sicherung raus :-D

Nicodius 19. Mai 2004 17:54

Re: Wie kann man einen Computer über das Netwerk herunterfah
 
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.

Zottel 19. Mai 2004 18:02

Re: Wie kann man einen Computer über das Netwerk herunterfah
 
@Nicodius
Die function klappt scheinbar leider nur, wenn du admin-rechte hast..... :-( schade... sonst hätt ich gleich wieder unser programm zum runterfahren geändert ;-)

Phoenix 19. Mai 2004 18:14

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

Zitat von Zottel
@Nicodius
Die function klappt scheinbar leider nur, wenn du admin-rechte hast..... :-( schade...

Schade???? Wär ja noch schöner, wenn jedes x-Beliebige Script-Kiddy meinen Rechner remoter herunterfahren würde. Natürlich(!) geht das nur mit Adminrechten.

Zu Wake on Lan: Wake on Lan mit Indy

Luckie 19. Mai 2004 20:01

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

Zitat von Delphi Star
Das Assarbart nützt mir aber herzlich wenig, weil es vor dem Herunterfahren eine Frage stellt, da kann ich meine anderen Rechner ja gleich normal herunterfahren

Wie wäre es mit in die Sourcen kucken und selber anpassen? Willst du was fertiges bist du hier falsch. Dann solltest du auf den bekannten Downloadportalen kucken.

kiar 19. Mai 2004 20:25

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

ich nutze selber das Rshutdown2 . kann das mit der meldung nicht bestätigen. der computer wird problemlos runtergefahren.

raik

eroe 19. Mai 2004 20:31

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

Zitat von Luckie
Zitat:

Zitat von Delphi Star
Das Assarbart nützt mir aber herzlich wenig, weil es vor dem Herunterfahren eine Frage stellt, da kann ich meine anderen Rechner ja gleich normal herunterfahren

Wie wäre es mit in die Sourcen kucken und selber anpassen? Willst du was fertiges bist du hier falsch. Dann solltest du auf den bekannten Downloadportalen kucken.

soweit ich das verstanden habe meinte er die windows-sicherheitsabfrage ob der rechner _wirklich_ runtergefahren werden soll, und ich kann mir nur schwer vorstellen dass billy boy ihn so mir nichts dir nichts in seinen source schaun lässt, und sei es nur zum auslesen dieser funktion ;)

PS: korrigiert mich wenn ich falsch liege :D

Luckie 19. Mai 2004 20:37

Re: Wie kann man einen Computer über das Netwerk herunterfah
 
Kann das sein, dass es nur innerhalb einer Domain funktioniert? Ich habe es gerade im Heimnetzwerk getestet und der Remoterechner ist nicht runtergefahren.

kiar 19. Mai 2004 20:41

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

ich gebe nur den computernamen an und fahre ihn runter.

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz