使用vb.net等待外部程序運行完畢才繼續
發表時間:2023-08-03 來源:明輝站整理相關軟件相關文章人氣:
[摘要]上次我已介紹如何運行外部程序,今天我繼續講這一話題:1.有好多時,我們需要調用外部的EXE程序,并且要等它運行完畢,我們才可以繼續下面的動作,那我們怎樣去實現了,請看以下代碼.'怎樣等待外部...
上次我已介紹如何運行外部程序,今天我繼續講這一話題:
1.有好多時,我們需要調用外部的EXE程序,并且要等它運行完畢,我們才可以繼續下面的動作,那我們怎樣去實現了,請看以下代碼.
'怎樣等待外部程序運行完畢.
'從系統資料夾讀入文件
Dim sysFolder As String = _
Environment.GetFolderPath(Environment.SpecialFolder.System)
'創建一個新的進程結構
Dim pInfo As New ProcessStartInfo()
'設置其成員FileName為系統資料的Eula.txt
pInfo.FileName = sysFolder & "\eula.txt"
'運行該文件
Dim p As Process = Process.Start(pInfo)
'等待程序裝載完成
p.WaitForInputIdle()
'等待進行程退出
p.WaitForExit()
'繼續執行下面的代碼
MessageBox.Show("繼續執行代碼")
2.我們想在5秒鐘后,強行關閉它.而不是需要我手工關閉.
'設置退出時間
Dim timeOut As Integer = 5000
Dim sysFolder As String = _
Environment.GetFolderPath(Environment.SpecialFolder.System)
Dim pInfo As New ProcessStartInfo()
pInfo.FileName = sysFolder & "\eula.txt"
Dim p As Process = Process.Start(pInfo)
p.WaitForInputIdle()
p.WaitForExit(timeOut)
'檢查是否在超時前已關閉了.
If p.HasExited = False Then
'進行程還在運行
'看進程有沒有回應
If p.Responding Then
p.CloseMainWindow() '關閉窗口
Else
p.Kill()'強行中斷
End If
End If
MessageBox.Show("繼續執行代碼")