Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Разбудить компьютер по сети, Использование Bios Wake-on-Lan

01.01.2007
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Classes,
  IdBaseComponent,
  IdComponent,
  IdUDPBase,
  IdUDPClient;
 
function HexStringToBinString(const HexStr: string): string;
var
  i, l: integer;
begin
  Result := '';
  l := length(HexStr);
  l := l div 2;
  SetLength(Result, l);
  for i := 1 to l do
    if HexToBin(PChar(Copy(HexStr, (i - 1) * 2 + 1, 2)),
      PChar(@Result[i]), 1) = 0 then
      raise Exception.Create('Invalid hex value');
end;
 
procedure SendMagicPacket(MACAddress: string);
var
  s, packet: string;
  i: integer;
begin
  if Length(MACAddress) <> 12 then
    raise Exception.CreateFmt('Invalid MAC Address: %s', [MACAddress]);
  packet := HexStringToBinString('FFFFFFFFFFFF');
  s := HexStringToBinString(MACAddress);
  for i := 1 to 16 do
    packet := packet + s;
  with TIdUDPClient.Create(nil) do
  try
    Active := true;
    BroadcastEnabled := true;
    Broadcast(packet, 9);
  finally
    Free;
  end;
end;
 
begin
  if ParamCount <> 1 then
    WriteLn('usage: WakeOnLan MACAddress' + #10 + #13 + 'exmple: WakeOnLan 000102030405')
  else
    SendMagicPacket(ParamStr(1));
end.

Автор: Song

Взято из https://forum.sources.ru