我用计划任选执行语句正常:"D:\Program Files\AVG\AVG10\avgmfapx.exe" /AppMode=UPDATE /source=folder /pri=3 /path="f:\avgupdate"
在VB中,用SHELL调用这个语句,应该怎样书写。我的代码如下
Private Sub Command1_Click()
Shell "D:\Program Files\AVG\AVG10\avgmfapx.exe /AppMode=UPDATE /source=folder /pri=3 /path=""f:\avgupdate""", vbHideEnd Sub

解决方案 »

  1.   

    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 函数之后的语句。
      

  2.   

    GOOGLE了好久,找到一些方法,尝试用''把参数括起来,运行正常
    Shell "D:\Program Files\AVG\AVG10\avgmfapx.exe '/AppMode=UPDATE /source=folder /pri=3 /path=""f:\avgupdate""'", vbHide
      

  3.   

    应该不需要的 如果不能识别那也是avgmfapx.exe程序本身对参数处理有问题,可以提交bug。
    看看这个程序,顶部那么复杂的参数都有办法分离出来识别处理。
    http://blog.csdn.net/sysdzw/article/details/6213821
    http://blog.csdn.net/sysdzw/article/details/6198257
      

  4.   


    谢谢SYSDZW,我尝试过了,确实是不需要‘’把参数括起来也可以运行,是客户机程序运行的错误,导致我花了好多时间在语法上面,原来照我一开始的写法就OK了,
    现在问题又来了,客户机用管理员运行VB生成的EXE程序正常运行,但要是换了普通用户程序就不起用了了,像是没运行一样。
      

  5.   

    直接给你吧。
    runas /savecred /user:administrator "calc.exe" 这样就以超级用户身份运行了,第一次执行需要输入密码验证,这个/savecred表示保存密码,不然你每次都得输入密码。