Hallo xZise,
ich selber habe es letztens selber in C# gemacht. Dabei habe ich einfach einen Bytearray genommen, um die Mac-Adresse zu übergeben.
Code:
public static void WakeOnLan(byte[] mac)
{
UdpClient client = new UdpClient();
client.Connect(IPAddress.Broadcast, 40000);
byte[] packet = new byte[102];
for (int i = 0; i < 6; i++)
packet[i] = 0xFF;
for (int i = 1; i <= 16; i++)
for (int j = 0; j < 6; j++)
packet[i * 6 + j] = mac[j];
client.Send(packet, 102);
client = null;
}
Dementsprechend habe ich dir mal den Code verändert (ungetestet):
Delphi-Quellcode:
type
TMACAdress = Array of Byte[0..5];
procedure SendMagicPacket(const AMACAdress: TMACAdress );
var
MessageData : array of Byte[0..101];
i, j: Integer;
begin
for i := 0 to 5 do
MessageData[i] := $FF;
for i := 1 to 16 do
for j := 0 to 5 do
MessageData[i * 6 + j] := AMACAdress[j-1];
udpSocket.RemotePort := 40000;
udpSocket.RemoteHost := '255.255.255.255';
udpSocket.SendBuf(MessageData, 102);
end;