Иногда вы хотите запустить компьютер, не нажимая кнопку питания. И это можно сделать... по сети с помощью технологии под названием Wake on LAN (WoL).
Но как это сделать в AutoHotkey?
Иногда вы хотите запустить компьютер, не нажимая кнопку питания. И это можно сделать... по сети с помощью технологии под названием Wake on LAN (WoL).
Но как это сделать в AutoHotkey?
Чтобы разбудить компьютер через вашу локальную сеть, вам нужно создать и отправить так называемый волшебный пакет. Все, что вам нужно знать, это mac-адрес вашего целевого компьютера. Кроме того, убедитесь, что это правильно настроен для WoL.
Разбудить компьютер можно довольно легко, используя библиотеку сокетов в AHK:
#include Socket.ahk ;http://pastebin.com/CtM9p4QG
WakeOnLAN("AABBCCDDEEFF") ;Example - use the mac address of your target here
ExitApp
WakeOnLAN(mac) {
magicPacket_HexString := GenerateMagicPacketHex(mac)
size := CreateBinary(magicPacket_HexString, magicPacket)
UdpOut := new SocketUDP()
UdpOut.connect("addr_broadcast", 9)
UdpOut.enableBroadcast()
UdpOut.send(&magicPacket, size)
}
GenerateMagicPacketHex(mac) {
magicPacket_HexString := "FFFFFFFFFFFF"
Loop, 16
magicPacket_HexString .= mac
Return magicPacket_HexString
}
CreateBinary(hexString, ByRef var) { ;Credits to RHCP!
sizeBytes := StrLen(hexString)//2
VarSetCapacity(var, sizeBytes)
Loop, % sizeBytes
NumPut("0x" SubStr(hexString, A_Index * 2 - 1, 2), var, A_Index - 1, "UChar")
Return sizeBytes
}
Вы можете использовать Softperfect Network Scanner (тот, у которого вместо значка футбольный мяч), а затем используйте AutoHotkey для отправки ему командной строки. Вы также можете запустить его портативно, поэтому вам даже не нужно ничего устанавливать.
netscan := "c:\program files\netscan\netscan.exe"
run, %netscan% /wol:AA:EE:73:43:BB:73
Синтаксис командной строки для netscan приведен в внизу страницы документации.
/wol:MAC отправляет волшебный пакет Wake-On-LAN на указанный MAC-адрес и немедленно завершает работу. Пример: /wol:AABBCCDDEEFF.
/wolfile:filename.txt позволяет указать текстовый файл с MAC-адресами для пробуждения, например /wolfile:c:\myfile.txt, где файл представляет собой обычный текстовый файл, содержащий один MAC-адрес в каждой строке.
/wakeall отправляет пакет WOL на все компьютеры, настроенные в диспетчере WOL, и немедленно завершает работу.
Но имейте в виду, что у вас должна быть включена опция в вашем BIOS, чтобы компьютер мог получать волшебный пакет на свою сетевую карту.