我写了一个很简单的程序
Private Sub Command1_Click()
    Call VBA.Shell(App.Path & "\a.bat")
End Sub
然后a.bat的内容是这样的
c:
dir /s/p
我把这个程序编译成exe文件后放到几台电脑上去用,结果我发现有的电脑会运行a.bat,有的电脑就不会
表现出的状态是,如果会运行a.bat,那么就会出来一个cmd窗口,里面有目录内容
如果不会运行a.bat,那么cmd窗口就一闪而过。为什么有好多电脑都不能运行我这个程序生成的exe文件呢?

解决方案 »

  1.   

    cmd窗口就一闪而过说明.Shell命令已执行
      

  2.   

    在电脑上右键点击bat文件->“属性” 这样一看你就知道什么回事,有的电脑设置为执行了命令就关闭CMD的。
      

  3.   

    这样试:
    Private Sub Command1_Click()
        Shell "cmd /k " & App.Path & "\a.bat", 1
    End Sub
      

  4.   

    既然已经出现DOS窗口,就表示已经执行了
    只是执行完就关闭了而已
      

  5.   

    在a.bat中 加个PAUSE,看看有没有错误发生
      

  6.   

    楼主直接双击bat文件运行可以么?如果双击运行也不可以那么就真的被禁用了。建议第一行加个cd\,测试下这个文件:
    cd\
    c: 
    dir
    pause如果还出问题就一行行排除,比如上面还不行 那么就在第2行前插入一个pause,以此类推。
      

  7.   

    找到原因了,原因是调用路径中不能有空格,而我把这个程序放在了d:\test_shell目录中使用,所以没问题,而别人都是放在桌面上使用,所以就不能运行了。