局域网唤醒 (WoL) - 通过网络启动计算机
Wake on LAN (WoL) - start computers over the network
您有时想在不按电源按钮的情况下启动计算机。它可以通过网络使用称为局域网唤醒 (WoL) 的技术来完成。
但是在 AutoHotkey 中如何实现呢?
要通过 LAN 唤醒计算机,您需要创建并发送所谓的魔法数据包。您只需要知道目标计算机的 mac 地址即可。另外,确保它是 properly set up for 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 的命令行语法位于 bottom of the docs page。
/wol:MAC sends a Wake-On-LAN magic packet to the specified MAC address
and immediately exits. Example: /wol:AABBCCDDEEFF.
/wolfile:filename.txt allows you to specify a text file with MAC
addresses to wake-up, e.g. /wolfile:c:\myfile.txt where the file is a
plain text file containing one MAC address per line.
/wakeall sends a WOL packet to all computers configured in the WOL
manager and immediately quits.
但请记住,您必须在 BIOS 中启用该选项才能使计算机在其 NIC 上接收魔术数据包。
您有时想在不按电源按钮的情况下启动计算机。它可以通过网络使用称为局域网唤醒 (WoL) 的技术来完成。
但是在 AutoHotkey 中如何实现呢?
要通过 LAN 唤醒计算机,您需要创建并发送所谓的魔法数据包。您只需要知道目标计算机的 mac 地址即可。另外,确保它是 properly set up for 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 的命令行语法位于 bottom of the docs page。
/wol:MAC sends a Wake-On-LAN magic packet to the specified MAC address and immediately exits. Example: /wol:AABBCCDDEEFF.
/wolfile:filename.txt allows you to specify a text file with MAC addresses to wake-up, e.g. /wolfile:c:\myfile.txt where the file is a plain text file containing one MAC address per line.
/wakeall sends a WOL packet to all computers configured in the WOL manager and immediately quits.
但请记住,您必须在 BIOS 中启用该选项才能使计算机在其 NIC 上接收魔术数据包。