其次,在标题为命令行参数的文本框中输入(data)一个或者使用空格分隔的多个参数,注意如果参数中包含有空格的话则添加双引号。
最后,点击”确定”,在运行该工程时,指定的参数将被传送到程序中,就像在命令行提示符处输入一样。
下面则是编好的wol.exe控制台可执行程序:
Imports System.Net.Sockets '引入Socket类
Imports System.Net '引入网络.NET类
Module Module1
Dim n As Integer '定义n为重复次数变量(整型)
Dim i As Integer '定义i为MAC个数变量(整型)
Dim data As String '定义data为字符串
Dim str(5) As String
Dim myudp As UdpClient '定义myudp 为UdpClient类
Dim intport As Integer '定义端口变量intport为整型
Dim wol(101) As Byte '定义wol为重复16次的字节型数组
Dim groupip As IPEndPoint '定义groupip为发送唤醒数据终端IPEndPoint型
Sub Main()
data = Command() '接收DOS控制台输入的MAC地址
intport = 3600 '唤醒数据端口为3600
try 'try…catch错误处理机制
For i = 0 To 5
str(i) = Mid(data, 2 * i + 1, 2) '取MAC地址中两个为一组
str(i) = "&H" + str(i) '在选取字符串前添加"&H"
wol(i) = CByte(&HFF) '转换6个FF为字节型
Next
For n = 1 To 16 '设置重复次数n为16次
i = n * 6
wol(i) = CByte(str(0)) '转换str数组六个字符串为字节型
wol(i + 1) = CByte(str(1))
wol(i + 2) = CByte(str(2))
wol(i + 3) = CByte(str(3))
wol(i + 4) = CByte(str(4))
wol(i + 5) = CByte(str(5))
Next
groupip = New IPEndPoint(IPAddress.Parse("255.255.255.255"), intport)
'设置groupip为网络广播地址255.255.255.255 端口3600
myudp = New UdpClient '重载myudp
myudp.Send(wol, 102, groupip) '以UDP协议向网络中发送要唤醒的MAC物理地址
myudp.Close() '发送完毕关闭myudp
Catch ex As Exception 'try…catch错误处理机制
MsgBox("MAC地址当中有错误")
End Try
End Sub
End Module
在工程中调用wol.exe的时候后面要空一格,譬如在VB中调用这个控制台程序的时候,要远程启动的电脑MAC地址为00-10-B5-68-8D-75,那么在调用的时候为这样shell(c:\wol.exe 0010B5688D75)大小写都不要紧。执行这个语句后就能把远程电脑给唤醒(要求计算机的CMOS设置中的“Power Up On LAN”或者“Power Up On PCI Card”必须被设置“Enable”)。
|