命令行参数可以用Command函数取得!

解决方案 »

  1.   

    調用exe文件時怎樣傳遞參數?
    被調用exe文件運行時怎樣接收到參數?
      

  2.   

    ***************************************************
    调用程序使用此函数,在pathname参数中包含命令行参数:
    Shell 函数
          执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。语法Shell(pathname[,windowstyle])Shell 函数的语法含有下面这些命名参数:部分 描述 
    pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。 
    Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。 
    windowstyle 命名参数有以下这些值:常量 值 描述 
    vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。 
    VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。 
    VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。 
    VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。 
    VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。 
    VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。 
    说明如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。*******************************
    被调用的程序如下取得命令行参数:
    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