vb.net中shell同步执行的问题——高手请进!
开发平台是visual studio2010,问题如下:
rid = Shell("cmd /c java.exe -client -classpath " & classPath & " GetOracleDBDataSelect " & serverID & " " & user & " " & password & " " & airlineInputFile & " " & resultPath1 & " >> " & logFilePath & "Exportlog.log", vbHide,True)
textbox1.text=rid
一般shell是异步执行的。但在网上看到,vb.net中增加了一个参数wait as boolean,它可以控制是否等待shell执行完毕。
我试了下,visual studio2010中确实有这个参数的设置(如上),打印出的rid总是0(执行失败)。可是java程序已经得到了正确结果。
当我去掉参数true时,打印出的就是进程号,java 程序也可以得到正确结果。
只想请教高手,这是什么情况?wait参数到底管不管用?该怎么用?如果不行,该怎样在vb.net中是shell同步执行? vb.net? shell wait参数 同步执行
[解决办法]
本帖最后由 bcrun 于 2013-09-11 11:34:18 编辑
Public Sub ShellandWait(ByVal ProcessPath As String)
Dim objProcess As System.Diagnostics.Process
Try
objProcess = New System.Diagnostics.Process()
objProcess.StartInfo.FileName = ProcessPath
objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
objProcess.Start()
'Wait until the process passes back an exit code
objProcess.WaitForExit()
'Free resources associated with this process
objProcess.Close()
Catch
MessageBox.Show("Could not start process " & ProcessPath, "Error")
End Try
End Sub