📄 wangluohuanxing.txt
字号:
VB中编程实现远程唤醒方法:
1、 使用WINSOCK1 的UDP协议来发送数据包;
2、 要使局域网中的电脑开机,就要知道远程计算机的MAC地址;
3、 数据发送格式为Byte型十六进制数据;
4、 要发送的数据为: FF FF FF FF FF FF 和十六个6位的MAC;
5、 主板设置:将CMOS设置中的“Power Management Setup”的“Wake Up On LAN”项设置为“Enable”即可;
6、 网卡与主板连接:主板上通常都有一个专门的3芯插座,以便在关机时为网卡供电,支持远程唤醒的网卡上都有一个3针的WOL接口和一条3芯的远程唤醒电缆,通过判断网卡是否带有WOL接口即可
7、 因为条件有限只在INTER865主板上测试通过;
Private Sub InitUDPSOCK()
With Winsock1
.Protocol = sckUDPProtocol
.RemoteHost = "255.255.255.255" ‘或者使用局域网段如”192.168.XXX..255”
.RemotePort = 7010
.Bind 7010
End With
End Sub
Private Sub UDPSenddata(MAC As String)
Dim i As Integer
Dim p As Integer
Dim B() As Byte
Dim DataBuff() As Byte
ReDim B(0 To 5) As Byte
ReDim DataBuff(0 To 101) As Byte
'这部分是举例的MAC码00-11-11-1C-D9-50
B(0) = Val("&h" & (Mid(MAC, 1, 2))) '&H0
B(1) = Val("&h" & (Mid(MAC, 4, 2))) '&H11
B(2) = Val("&h" & (Mid(MAC, 7, 2))) '&H11
B(3) = Val("&h" & (Mid(MAC, 10, 2))) '&H1C ' 此處修改 mid中的位數 ,可以實現 0011111CD950 格式..
B(4) = Val("&h" & (Mid(MAC, 13, 2))) '&HD9
B(5) = Val("&h" & (Mid(MAC, 16, 2))) '&H50
'这是起始的6字节FF
For i = 0 To 5
DataBuff(i) = &HFF
Next i
'16个6字节的MAC码
'这部分也可以用API的CopyMemory 来写
For p = 1 To 16
For i = 0 To 5
DataBuff(p * 6 + i) = B(i)
Next i
Next p
’输出显示发送码(调试时使用)
For i = 0 To 101
If Len(Hex(DataBuff(i))) = 1 Then
StrA$ = StrA$ & "0" & Hex(DataBuff(i)) & " "
Else
StrA$ = StrA$ & Hex(DataBuff(i)) & " "
End If
Next i
DUBEG.PRINT StrA$
Winsock1.SendData DataBuff
End Sub
Private Sub Command1_Click()
Call UDPSenddata("00-11-11-1C-D9-50")’MAC
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -