Wake on Lan (WOL)

Wake on Lan (WOL)

Beitragvon Rocktagon » Mi 27. Feb 2013, 12:41

Viele der Routinen im Netz funktionierten bei mir nicht bis ich diese gefunden und etwas angepasst hab.
Funktionierte zumindest mit Windows 7 64 Ultimate und Delphi XE3 Updt 2 Indy 10 bei mir.

Code: Alles auswählen
procedure WakeUPComputer(aMacAddress: string);
var
  i, j: Byte;
  lBuffer: tbytes;
  lUDPClient: TIDUDPClient;
begin
    aMacAddress := StringReplace(uppercase(aMacAddress), '-', '', [rfReplaceAll]);
    aMacAddress := StringReplace(aMacAddress, ':', '', [rfReplaceAll]);
  try
  setlength(lbuffer,117);
    for i := 1 to 6 do
    begin
    lBuffer[i] :=StrToIntDef('$' + aMacAddress[(i * 2) - 1] + aMacAddress[i * 2],0);
    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);
    finally
      lUDPClient.Free;
    end;
  except
   on E: Exception do showmessage('Fehler '+E.Message+' beim WakeUp von '+aMacAddress);
  end;
end;
Non mihi non tibi sed nobis
nightlight ÄT gmx PUNKT de
Benutzeravatar
Rocktagon
Administrator
 
Beiträge: 142
Registriert: So 28. Okt 2012, 10:15
Wohnort: NRW

Zurück zu Delphi

Wer ist online?

Mitglieder in diesem Forum: NewBot und 0 Gäste

Fatal: Not able to open ./cache/data_global.php