把工程设置为SUB MAIN启动:
dim Commands() as string'用来接受COMMAND参数的数组
Sub Main()
GetCommands Command, Commands
Form1.Show
End Sub
Public Sub GetCommands(CMD As String, bufferCmd() As String)'取得COMMAND参数
Dim Find As Integer
Dim cmdCount As Integer
Do While Len(CMD) > 4
If InStr(CMD, " ") <= 0 Then
ReDim Preserve bufferCmd(cmdCount) As String
bufferCmd(cmdCount) = CMD
CMD = ""
Exit Do
End If
DoEvents
If Asc(CMD) = 32 Then CMD = Right(CMD, Len(CMD) - 1)
If Asc(CMD) = 34 Then
CMD = Right(CMD, Len(CMD) - 1)
Find = InStr(CMD, Chr(34))
ReDim Preserve bufferCmd(cmdCount) As String
bufferCmd(cmdCount) = Mid(CMD, 1, Find - 1)
CMD = Right(CMD, Len(CMD) - Find)
Else
Find = InStr(CMD, Chr(32))
ReDim Preserve bufferCmd(cmdCount) As String
bufferCmd(cmdCount) = Mid(CMD, 1, Find - 1)
CMD = Right(CMD, Len(CMD) - Find)
End If
cmdCount = cmdCount + 1
Loop
End Sub
Function GetCommandLine(Optional MaxArgs)
'声明变量。
Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs
'检查是否提供了 MaxArgs 参数。
If IsMissing(MaxArgs) Then MaxArgs = 10
' 使数组的大小合适。
ReDim ArgArray(MaxArgs)
NumArgs = 0: InArg = False
'取得命令行参数。
CmdLine = Command()
CmdLnLen = Len(CmdLine)
'以一次一个字符的方式取出命令行参数。
For I = 1 To CmdLnLen
C = Mid(CmdLine, I, 1)
'检测是否为 space 或 tab。
If (C <> " " And C <> vbTab) Then
'若既不是 space 键,也不是 tab 键,
'则检测是否为参数内含之字符。
If Not InArg Then
'新的参数。
'检测参数是否过多。
If NumArgs = MaxArgs Then Exit For
NumArgs = NumArgs + 1
InArg = True
End If
'将字符连接到当前参数中。
ArgArray(NumArgs) = ArgArray(NumArgs) & C
Else
'找到 space 或 tab。
'将 InArg 标志设置成 False。
InArg = False
End If
Next I
'调整数组大小使其刚好符合参数个数。
ReDim Preserve ArgArray(NumArgs)
'将数组返回。
GetCommandLine = ArgArray()
End Function