Entwickler-Ecke

Windows API - Remote PC`s einschalten/herunterfahren


neo - So 30.03.03 14:17
Titel: Remote PC`s einschalten/herunterfahren
Hallo!

Wie kann ich Remote PC`s (Im Netzwerk) einschalten bzw. herunterfahren.

Ich weiß dass man beim Einschalten eine bestimmte Nachricht an die Netzwerkkarte schicken muss.

Danke!


Delete - So 30.03.03 14:46

Kuck mal auf http://www.assarbad.org nach RemoteShutdown. Da mit das funktioniert müssen die Rechner aber in einer Domaine sein.


matze - So 30.03.03 19:55

um die PCs per Remote aufzuwecken muss die Netzwerkkarte und das Motherboard WakeOnLan unterstützen !


maxk - So 30.03.03 20:00

matze hat folgendes geschrieben:
um die PCs per Remote aufzuwecken muss die Netzwerkkarte und das Motherboard WakeOnLan unterstützen !

Und wie das geht, steht im Forum! Musst du mal suchen!

maxk


neo - So 30.03.03 21:58
Titel: RE:
Ich habe den Code bei swissdelphicenter.com gefunden.

Wenn ich ihn ausprobiere bekomme ich jedoch immer eine fehlermeldung. Der quellcode ist richtig.

Vielleicht hat wer von euch eine andere version...

Danke!


Delete - So 30.03.03 22:20
Titel: Re: RE:
neo hat folgendes geschrieben:
Ich habe den Code bei swissdelphicenter.com gefunden.

Gut.
Zitat:

Wenn ich ihn ausprobiere bekomme ich jedoch immer eine fehlermeldung. Der quellcode ist richtig.

Warum werden einem Fehlermeldungen hier im Forum eigentlich nie freiwillig mitgeteilt? Warum muß man immer erst darum bitten, dass sie einem genannt werden?
Ich für meinen Teil werde ab heute alle Threads ignorieren, wo einer sagt. "Geht nicht.", "Kommt ein Fehler." und ähnliches und dann beharrlich die genmaue Fehlermeldung verschweigt opder nicht sagt, warum es nicht geht.
Zitat:

Vielleicht hat wer von euch eine andere version...

Und wieder: Warum fragt eigentlich gleich jeder nach anderen Code, wenn der gefunden nicht auf Anhieb funktioniert? Schon mal daran gedacht, dass der Fehler bei einem selbst liegt und nicht am Code?

Also du hast zwei Möglichkeiten: Entweder du wendest dich, wenn du Probleme mit dem Code hast, an das zuständige Forum vom SwissDelphiCenter oder du postest hier den Code und sagst uns was nicht geht und warum.


neo - Mo 31.03.03 15:15
Titel: RE:
Sorry für meine Fehler.

So dies ist der 2. versuch.

Der Gesamte Code lautet:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:

What's a Magic Packet? 
Was ist ein Magic Packet? 

DESTINATION SOURCE MISC. FF FF FF FF FF FF 11 22 33 44 55 66 11 22 33 44 
55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 
55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 
55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 
55 66 11 22 33 44 55 66 11 22 33 44 55 66 MISC. CRC. 

Note: Destination, Source, Misc and CRC are normally added by our Socket-Component 
Beachte: Destination, Source, Mis und CRC werden normalerweise von deiner 
Socket-Komponente hinzugefügt 


procedure TForm1.Button1Click(Sender: TObject); 
var 
  Data, temp: string; 
  k, n: integer; 
begin 
  Data := ''; 
  for k := 0 to 5 do 
  begin 
    Data := Data + Chr(StrToInt('$FF'));  // 6x add a FF / 6x ein FF hinzufügen 
  end; 
  temp := StringReplace(Edit1.Text, '-', '', [rfReplaceAll]); 
  for k := 0 to 15 do 
  begin 
    temp := StringReplace(Edit1.Text, '-', '', [rfReplaceAll]); 
    for n := 0 to 5 do 
    begin 
      // 16x add Target-Mac-Adress / 16x die Ziel-Macadresse hinzufügen 
      Data := Data + Chr(StrToInt('$' + temp[1] + temp[2])); 
      Delete(temp, 1, 2); 
    end; 
  end; 
   
  //Example with TIdUDPClient of Indy 
  //IdUDPClient1.Send('255.255.255.255', '80', Data);  // Send it / Verschick es 
end;


Die Fehlermeldung ist EConvert Error "$it ist kein gültiger Integerwert"

So das wars


Delete - Mo 31.03.03 16:22

Was muß den in Edit1 drin stehen? Wenn ich da "Edit1" drinstehen habe bekomme ich auch den Fehler. Nur gehe ich mal stark davon aus, dass das nicht in das Edit gehört. Also, was muß da drin stehen?


neo - Mo 31.03.03 18:05
Titel: RE:
Das habe ich mich auch schon gefragt.

Ich hab jetzt nicht drinnen stehen, weil in der prozedur ja irgendwas zugewiesen wird...


Delete - Mo 31.03.03 20:04

Nein, in der Prozedur wird was damit gemacht:

Quelltext
1:
temp := StringReplace(Edit1.Text, '-', '', [rfReplaceAll]);                    


DaFox - Di 01.04.03 00:39

Luckie hat folgendes geschrieben:

Was muß den in Edit1 drin stehen?


Die MAC-Adresse.


ShadowCaster - Di 01.04.03 09:24

vielleicht muss da die Mac-Adresse des Rechners drinnenstehen, den du wakeuppen oder herunterfahren willst ;)


Delete - Di 01.04.03 10:11

Würde zu mindest mehr Sinn machen als "Edit1". :wink: