局域网唤醒(WoL)-通过网络启动计算机



您有时想要在不按下电源按钮的情况下启动计算机。这是可以做到的。。通过网络使用一种名为局域网唤醒(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网络扫描仪(一个有足球作为图标的扫描仪),然后使用AutoHotkey向它发送命令行。你也可以便携式运行它,所以你甚至不需要安装任何东西。

netscan := "c:program filesnetscannetscan.exe"
run, %netscan% /wol:AA:EE:73:43:BB:73

netscan的命令行语法位于文档页面的底部。

/wol:MAC向指定的MAC地址发送Wake-On-LAN魔术数据包并立即退出。示例:/wol:ABBCCDDEEFF。

/wolfile:filename.txt允许您使用MAC指定文本文件要唤醒的地址,例如/wolfile:c:\myfile.txt,其中文件是每行包含一个MAC地址的纯文本文件。

/wakeall向WOL中配置的所有计算机发送WOL数据包经理,并立即辞职。

但请记住,您必须在BIOS中启用该选项,才能使计算机在其NIC上接收神奇的数据包。