![]() |
Re: PC über Netzwerk starten
Hi Phoenix
Ja, ich denke das ist es was ich dafür brauche. Aber jetzt kommt mein Problem! Wie wende ich den Code an :gruebel: Ich bin leider noch nicht so Fit in Delphi :oops: Kannst du mir da ein paar Tips oder ein Beispiel geben :gruebel: Wäre echt super Lieb von dir! Gruß CelinaW |
Re: PC über Netzwerk starten
Du suchst erstmal die Indy-Komponenten und installierst die.
Danach packst Du den Code aus dem Post in eine eigene Datei und nennst diese z.B. WakeOnLan.pas. In deinem Programm (z.B. normale Form) schreibst Du oben in die Uses-Klausel dann WakeOnLan mit rein, und im Code schreibst Du dann irgendwo (z.B. in einer ButtonClick - Methode)
Code:
Wobei AABBCCDDEEFF dann halt für die MAC-Adresse des aufzuweckenden Rechners steht.
WakeUPComputer('AABBCCDDEEFF');
Das wars dann schon. |
Re: PC über Netzwerk starten
WakeUPComputer('00023F7F710E'); // 00-02-3F-7F-71-0E
Die physikalische Adresse (MAC) wird zum Beispiel angezeigt, wenn Du unter Windows XP in einer Konsole 'ipconfig -all' eingibst. |
Re: PC über Netzwerk starten
WoW :thuimb: :thuimb: :thuimb:
Ihr seit echt Super. Ich versuche mal ob ich das hin bekomme. Ansonstan frage ich halt nochmal nach! Vielen Vielen Vielen Dank! Wenn das klappt habt ihr mir echt sehr geholfen! Gruß CelinaW |
Re: PC über Netzwerk starten
Mh...... Irgendwie klappt das bei mir nicht! Indys sind Installiert. Ich bekomme die Fehlermeldung "Interface" erwartet aber "Uses" gefunden.
Kann mir da mal jemand ein Beispiel coden :gruebel: :oops: :oops: :oops: Gruß Celina |
Re: PC über Netzwerk starten
Hi....
Kann sich mal jemand diese ![]() Ich bekomme immer unzählige Fehlermeldungen. :wall: :wall: Kann da jemand vielleicht mal ein Beispiel von erstellen. :gruebel: :oops: :oops: Vielen Dank |
Re: PC über Netzwerk starten
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
das muss noch hin
unit wakeonlan
interface uses ausser den uses raik |
Re: PC über Netzwerk starten
Hi@all
Habe das Problem leider immer noch nicht in griff bekommen. :wall: Kann mir aus dem Code mal jemand ein laufendes Beispiel zaubern? Gruß Celina |
Re: PC über Netzwerk starten
Also hier mal der Code:
Unit1:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses WakeOnLan; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin wakeonlan('000C76719CEA'); end; end. WakeOnLan:
Delphi-Quellcode:
unit WakeOnLan;
interface uses WinTypes, Messages, SysUtils, Classes, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient; Function HexToInt(S:String): LongInt; const DecDigits: Set Of '0'..'9' = ['0'..'9']; HexVals: Array [0..$F] Of Integer = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $A, $B, $C, $D, $E, $F); UpCaseHexLetters: Set Of 'A'..'F' = ['A'..'F']; LowCaseHexLetters: Set Of 'a'..'f' = ['a'..'f']; var v: LongInt; i: integer; LookUpIndex: integer; begin if length(S) <= 8 then begin v := 0; for i := 1 to length(S) do begin {$R-} v := v Shl 4; {$R+} if S[i] in DecDigits then begin LookUpIndex := Ord(S[i]) - Ord('0'); end else begin if S[i] in UpCaseHexLetters then begin LookUpIndex := Ord(S[i]) - Ord('A') + $A; end else begin if S[i] in LowCaseHexLetters then begin LookUpIndex := Ord(S[i]) - Ord('a') + $A; end else begin LookUpIndex := 0; end; end; end; v := v Or HexVals[LookUpIndex]; end; result := v; end else begin result := 0; end; end; procedure WakeUPComputer(aMacAddress: string); var i, j: Byte; lBuffer: array[1..116] of Byte; lUDPClient: TIUDPClient; begin try for i := 1 to 6 do begin lBuffer[i] := HexToInt(aMacAddress[(i * 2) - 1] + aMacAddress[i * 2]); end; lBuffer[7] := $00; lBuffer[8] := $74; lBuffer[9] := $FF; lBuffer[10] := $FF; lBuffer[11] := $FF; lBuffer[12] := $FF; lBuffer[13] := $FF; lBuffer[14] := $FF; for j := 1 to 16 do begin for i := 1 to 6 do begin lBuffer[15 + (j - 1) * 6 + (i - 1)] := lBuffer[i]; end; end; lBuffer[116] := $00; lBuffer[115] := $40; lBuffer[114] := $90; lBuffer[113] := $90; lBuffer[112] := $00; lBuffer[111] := $40; try lUDPClient := TIdUDPClient.Create(nil); lUDPClient.BroadcastEnabled := true; lUDPClient.Host := '255.255.255.255'; lUDPClient.Port := 2050; lUDPClient.SendBuffer(lBuffer, 116); writeln('Trying to wake-up remote host: ' + aMacAddress); finally lUDPClient.Free; end; except on E: Exception do writeln('There was an error'); end; end; Und hier die Fehlermeldungen: Erzeugen [Fehler] WakeOnLan.pas(21): Anweisungen sind im Interface-Teil nicht erlaubt [Fehler] WakeOnLan.pas(22): Undefinierter Bezeichner: 'S' [Fehler] WakeOnLan.pas(24): Inkompatible Typen [Fehler] WakeOnLan.pas(46): Undefinierter Bezeichner: 'result' [Fehler] WakeOnLan.pas(55): Bezeichner redefiniert: 'i' [Fehler] WakeOnLan.pas(57): Undefinierter Bezeichner: 'TIUDPClient' [Fehler] WakeOnLan.pas(58): Anweisungen sind im Interface-Teil nicht erlaubt [Fehler] WakeOnLan.pas(61): Undefinierter Bezeichner: 'aMacAddress' [Fehler] WakeOnLan.pas(62): Inkompatible Typen: 'String' und 'Integer' [Fehler] WakeOnLan.pas(85): Operator oder Semikolon fehlt [Fehler] WakeOnLan.pas(86): Operator oder Semikolon fehlt [Fehler] WakeOnLan.pas(87): Operator oder Semikolon fehlt [Fehler] WakeOnLan.pas(88): Operator oder Semikolon fehlt [Fehler] WakeOnLan.pas(91): Operator oder Semikolon fehlt [Fehler] WakeOnLan.pas(98): Deklaration erwartet, aber Dateiende gefunden [Fehler] WakeOnLan.pas(10): Ungenügende Forward- oder External-Deklaration: 'HexToInt' [Fehler] WakeOnLan.pas(53): Ungenügende Forward- oder External-Deklaration: 'WakeUPComputer' [Fataler Fehler] Unit1.pas(24): Verwendete Unit '..\..\..\..\..\..\Wolf\Programme\Borland\Delphi7\ Projects\Wakeup\WakeOnLan.pas' kann nicht compiliert werden Wer kann mir Helfen :gruebel: :gruebel: Gruß SelinaW |
Re: PC über Netzwerk starten
Code:
Und dann sehen wir mal weiter. Aber wenn du noch nicht mal weißt, wie eine Delphi Unit aufgebaut ist, solltest du eventuell mit ein paar Grundlagen anfangen.
interface
uses WinTypes, Messages, SysUtils, Classes, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient; [b]implementation[/b] Function HexToInt(S:String): LongInt; const DecDigits: Set Of '0'..'9' = ['0'..'9']; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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