您有时想在没有按下电源按钮的情况下启动计算机。它可以通过网络使用称为Wake on LAN(WoL)的技术完成。
但是如何在AutoHotkey中完成?
答案 0 :(得分:2)
要通过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
}
答案 1 :(得分:0)
您可以使用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向指定的MAC地址发送Wake-On-LAN魔术包 并立即退出。示例:/ wol:AABBCCDDEEFF。
/wolfile:filename.txt允许您指定带MAC的文本文件 地址唤醒,例如/wolfile:c:\myfile.txt文件是a 纯文本文件,每行包含一个MAC地址。
/ wakeall向WOL中配置的所有计算机发送WOL数据包 经理并立即退出。
但请记住,您必须在BIOS中启用该选项,以使计算机能够在其NIC上接收魔术包。