您有时想在不按电源按钮的情况下启动计算机。它可以通过网络使用一种称为 LAN 唤醒 (WoL) 的技术来完成。
但是如何在 AutoHotkey 中完成呢?
您有时想在不按电源按钮的情况下启动计算机。它可以通过网络使用一种称为 LAN 唤醒 (WoL) 的技术来完成。
但是如何在 AutoHotkey 中完成呢?
要通过 LAN 唤醒计算机,您需要创建并发送一个所谓的魔术包。您只需要知道目标计算机的 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 网络扫描仪(以足球为图标的扫描仪),然后使用 AutoHotkey 向其发送命令行。你也可以便携地运行它,所以你甚至不需要安装任何东西。
netscan := "c:\program files\netscan\netscan.exe"
run, %netscan% /wol:AA:EE:73:43:BB:73
netscan 的命令行语法位于文档页面的底部。
/wol:MAC 向指定的 MAC 地址发送一个 Wake-On-LAN 魔术包并立即退出。示例:/wol:AABBCCDDEEFF。
/wolfile:filename.txt 允许您指定一个带有 MAC 地址的文本文件以唤醒,例如 /wolfile:c:\myfile.txt 其中该文件是一个纯文本文件,每行包含一个 MAC 地址。
/wakeall 向 WOL 管理器中配置的所有计算机发送一个 WOL 数据包并立即退出。
但请记住,您必须在 BIOS 中启用该选项,以使计算机能够在其 NIC 上接收魔术包。