首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb.net中shell同步执行的有关问题——

2013-09-12 
vb.net中shell同步执行的问题——高手请进!开发平台是visual studio2010,问题如下: rid Shell(cmd /c jav

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

热点排行