为什么vb的shell函数在有的电脑上能用,有的就不能用?

cnng2002 2009-04-22 04:42:31
我写了一个很简单的程序
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文件呢?
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2009-04-23
  • 打赏
  • 举报
回复
这样试:
Private Sub Command1_Click()
Shell "cmd /k " & App.Path & "\a.bat", 1
End Sub

Jockey 2009-04-23
  • 打赏
  • 举报
回复
在电脑上右键点击bat文件->“属性” 这样一看你就知道什么回事,有的电脑设置为执行了命令就关闭CMD的。
cnng2002 2009-04-23
  • 打赏
  • 举报
回复
找到原因了,原因是调用路径中不能有空格,而我把这个程序放在了d:\test_shell目录中使用,所以没问题,而别人都是放在桌面上使用,所以就不能运行了。
无·法 2009-04-23
  • 打赏
  • 举报
回复
楼主直接双击bat文件运行可以么?如果双击运行也不可以那么就真的被禁用了。建议第一行加个cd\,测试下这个文件:
cd\
c:
dir
pause

如果还出问题就一行行排除,比如上面还不行 那么就在第2行前插入一个pause,以此类推。
sstlwg 2009-04-23
  • 打赏
  • 举报
回复
在a.bat中 加个PAUSE,看看有没有错误发生
白发程序猿 2009-04-23
  • 打赏
  • 举报
回复
既然已经出现DOS窗口,就表示已经执行了
只是执行完就关闭了而已
zydscaline 2009-04-23
  • 打赏
  • 举报
回复
好象又回到了DOS哦
SYSSZ 2009-04-22
  • 打赏
  • 举报
回复
cmd窗口就一闪而过说明.Shell命令已执行
slowgrace 2009-04-22
  • 打赏
  • 举报
回复
这几台电脑你都是以管理员身份登录的么?

7,763

社区成员

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

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