2015-04-05 78 views

回答

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 
} 
+0

你得到我的投票作一個純粹的AutoHotkey解決方案。 – bgmCoder 2015-04-09 13:52:39

0

你可以使用Softperfect Network Scanner(即有一個足球的圖標的那個),然後使用AutoHotkey的發送COMMANDLINES到它。你也可以運行它,所以你甚至不需要安裝任何東西。

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

netscan的命令行語法是bottom of the docs page

/wol:MAC發送LAN​​喚醒魔術數據包到指定的MAC地址 並立即退出。例如:/ wol:AABBCCDDEEFF。

/wolfile:filename.txt允許你指定與MAC 地址的文本文件,以喚醒,例如/wolfile:c:\myfile.txt其中文件是一個 純文本文件,每行包含一個MAC地址。

/wakeall發送WOL分組在WOL 管理器配置的所有計算機和立即退出。

但請記住,您必須在BIOS中啓用該選項才能使計算機在其NIC上接收到神奇數據包。