procedure
WakeUpComputer(MacAddress:
string
);
var
FirstByte, SecondByte, ThirdByte:
Byte
;
Package:
array
of
Byte
;
UDPClientSocket: TIdUDPClient;
begin
Windows
.
Beep(
10000
,
100
);
try
SetLength(Package,
102
);
for
FirstByte :=
0
to
5
do
begin
Package[FirstByte] :=
$FF
;
end
;
for
FirstByte :=
1
to
16
do
begin
SecondByte := FirstByte *
6
;
for
ThirdByte :=
0
to
5
do
begin
Package[SecondByte + ThirdByte] := HexToInt(MacAddress[ThirdByte *
2
+
1
] + MacAddress[ThirdByte *
2
+
2
]);
end
;
end
;
UDPClientSocket := TIdUDPClient
.
Create(
nil
);
try
UDPClientSocket
.
BroadcastEnabled :=
True
;
UDPClientSocket
.
Host :=
'255.255.255.255'
;
UDPClientSocket
.
Port :=
2050
;
UDPClientSocket
.
SendBuffer(
Pointer
(Package)^,
103
);
except
on
Problem: Exception
do
begin
if
MessageBox(
0
,
'Произошла ошибка при открытии соединения'
,
'Wake On LAN: Пробуждение сети'
, MB_ICONSTOP) =
1
then
begin
ExitProcess(
0
);
end
;
end
;
end
;
UDPClientSocket
.
Free;
SetLength(Package,
0
);
ExitProcess(
0
);
except
on
Problem: Exception
do
begin
if
MessageBox(
0
,
'Произошла ошибка при генерации пакета'
,
'Wake On LAN: Пробуждение сети'
, MB_ICONSTOP) =
1
then
begin
ExitProcess(
0
);
end
;
end
;
end
;
end
;