功能:讓關機的電腦一鍵開機,需要目標電腦的主板支持,並且插上網線;
效果:相當於手動按了一下目標電腦的開關機按鈕。
沒啥技術含量,簡單開說...
1.獲取目標機MAC地址
QByteArray sMacAddr("00-1f-16-26-d5-73");
2.封裝魔法包chMagicPacket
char chMacAddr[9];//應該是6個字符,但是如果寫6個字符,下面sscanf_s會報錯,所以寫大點 char chMagicPacket[104]; const char *lpMacAddr=sMacAddr.data(); sscanf_s( lpMacAddr,"%2x-%2x-%2x-%2x-%2x-%2x", &chMacAddr[0],&chMacAddr[1],&chMacAddr[2], &chMacAddr[3],&chMacAddr[4],&chMacAddr[5] ); memset(chMagicPacket,0xff,6); int packetsize=6; for(int i=0;i<16;i++){ memcpy(chMagicPacket+packetsize,chMacAddr,6); packetsize+=6; }
3.發送魔法包
udpSocket.writeDatagram(chMagicPacket, 102, QHostAddress("255.255.255.255"), 50209);