注册 登录
编程论坛 VB6论坛

关于vb shell函数调用程序执行不完全的求助

醍醐灌顶 发布于 2016-07-03 20:28, 3574 次点击
vb程序中使用shell函数调用一个可执行程序。可执行程序执行完后本应该输出一个txt文件,但通过调用执行程序后没有输出该文件。何解?
程序代码:

Private Sub Command5_Click()
If Dir(App.Path + "\elenode.txt") = "" Then
MsgBox "请选择elenode所在位置"
GoTo line1
End If
If Dir(App.Path + "\nodedis.txt") = "" Then
MsgBox "请选择nodedis所在位置"
GoTo line1
End If
If Dir(App.Path + "\scope.txt") = "" Then
MsgBox "请选scope所在位置"
GoTo line1
End If
Shell App.Path + "\inicss4n.exe", 1
MsgBox "运算结束!"
line1:
End Sub
10 回复
#2
HVB62016-07-04 07:28
回复 楼主 醍醐灌顶
程序代码“Shell App.Path + "\inicss4n.exe", 1”输出一个txt文件放在何处?
#3
xiangyue05102016-07-04 08:41
shell感觉和cmd一样的
你在cmd中输入同样的命令,看看执行效果。很可能是需要其他的参数。
#4
醍醐灌顶2016-07-04 13:10
回复 3楼 xiangyue0510
运行了一下,提示run-time error F6416: OPEN(scope.txt)- file not found。scope.txt是程序运行需要的几组数据之一。与可执行程序在一个文件夹中。但是双击运行可执行程序是没有问题的。
#5
醍醐灌顶2016-07-04 13:12
回复 2楼 HVB6
在被调用的程序所在文件夹里。也与vb程序在同一个文件夹里。
#6
xiangyue05102016-07-04 13:23
回复 4楼 醍醐灌顶
你说的双击是指的双击快捷方式的图标(包括开始菜单上的图标),还是直接双击exe?
我估计可能是前者,那么右键看一下是否属性中带有它的参数
这个是开始菜单上ANSYS APDL的属性信息
"C:\Program Files\ANSYS Inc\v140\ansys\bin\winx64\launcher140.exe" -runae
#7
醍醐灌顶2016-07-04 13:43
回复 6楼 xiangyue0510
直接双击exe。
#8
醍醐灌顶2016-07-04 14:22
回复 6楼 xiangyue0510
vb程序的运行是 1.将三个txt文件复制到程序所在文件夹。2.点击一个按钮,调用外部程序对复制进来的三个文件进行运算。
现在复制进来后调用外部程序,外部程序运行后没有出现外部程序运行所应该输出的txt文件。此时直接双击外部程序可以正常运行。关闭vb后重新打开,直接点按钮调用外部程序可以出现相应结果。
#9
xiangyue05102016-07-04 14:37
Shell和cmd输入命令的效果是一样。如果cmd不行,shell应该也是不行的。
百度了一下,你这个是Fortran的错误。就是找不到指定的文件,为何双击没有问题,cmd不行就不清楚是什么原因了,得看你的这个exe是怎么回事。
#10
醍醐灌顶2016-07-04 14:55
回复 9楼 xiangyue0510
大神,请问有没有一个方法可以单击一个按钮使窗体关闭再重新加载?
#11
xiangyue05102016-07-04 19:42
以下是引用醍醐灌顶在2016-7-4 14:55:06的发言:

大神,请问有没有一个方法可以单击一个按钮使窗体关闭再重新加载?

没有这样干过,貌似没有。但是如果只是一个视觉效果的话,可以这样实现, 1. 窗口最小化。  2. 修改变量(影响其显示的变量最好都设为公用的)。3. 直接调用Form_load。 4。窗口最大化或其他(反正就是正常的显示了)
1