在VB中怎么获取命令行参数?

leizhengyu 2005-02-22 07:45:58
例如:VB所写的应用程序与一个文档类型相关连,双击这种类型文档的文件则自动调用该程序并打开文档.问:应用程序如何知道这个文件的名字?
...全文
638 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsftest 2005-02-22
  • 打赏
  • 举报
回复
我想,上面回复的各位兄台好像都没有认真看楼主的要求吧。。。。。。

楼主参考:
http://www.china-askpro.com/msg6/qa33.shtml
http://www.hongen.com/pc/program/apitutor/api0009/api01.htm
wenquan836 2005-02-22
  • 打赏
  • 举报
回复
Command 参数的格式比如:

用一个程序同时打开多个文件,每个文件名以空格隔开,含有空格的文件名用双引号表示,如下.
C:\A.txt C:\WINNT\system32\OemLogo.bmp "C:\A (1).txt"
wenquan836 2005-02-22
  • 打赏
  • 举报
回复
把工程设置为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

zyl910 2005-02-22
  • 打赏
  • 举报
回复
Command 函数示例
本示例在某个函数中用 Command 函数获得命令行参数,并将命令行参数以 Variant 类型之数组返回。

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
zyl910 2005-02-22
  • 打赏
  • 举报
回复
Command 函数


返回命令行的参数部分,该命令行用于装入 Microsoft Visual Basic 或 Visual Basic 开发的可执行程序。

语法

Command

说明

当从命令行装入 Visual Basic 时,/cmd 之后的命令行的任何部分作为命令行的参数传递给程序。下面的示例中,cmdlineargs 代表 Command 函数返回的参数信息。

VB /cmd cmdlineargs

对于使用 Visual Basic 开发并编译为 .exe 文件的应用程序,Command 返回出现在命令行中应用程序名之后的任何参数。例如:

MyApp cmdlineargs

想知道如何在正在使用的应用程序的用户界面中改变命令行参数,请搜寻关于“命令行参数”的帮助。
wzzwwz 2005-02-22
  • 打赏
  • 举报
回复
我只知道Command可以获取以命令行方式打开的VB程序的命令行内容

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧