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
Gruß SelinaW