明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用vb.net等待外部程序運(yùn)行完畢才繼續(xù)

[摘要]上次我已介紹如何運(yùn)行外部程序,今天我繼續(xù)講這一話題:1.有好多時(shí),我們需要調(diào)用外部的EXE程序,并且要等它運(yùn)行完畢,我們才可以繼續(xù)下面的動(dòng)作,那我們?cè)鯓尤?shí)現(xiàn)了,請(qǐng)看以下代碼.'怎樣等待外部...
上次我已介紹如何運(yùn)行外部程序,今天我繼續(xù)講這一話題:
1.有好多時(shí),我們需要調(diào)用外部的EXE程序,并且要等它運(yùn)行完畢,我們才可以繼續(xù)下面的動(dòng)作,那我們?cè)鯓尤?shí)現(xiàn)了,請(qǐng)看以下代碼.
'怎樣等待外部程序運(yùn)行完畢.
'從系統(tǒng)資料夾讀入文件
Dim sysFolder As String = _
Environment.GetFolderPath(Environment.SpecialFolder.System)
'創(chuàng)建一個(gè)新的進(jìn)程結(jié)構(gòu)
Dim pInfo As New ProcessStartInfo()
'設(shè)置其成員FileName為系統(tǒng)資料的Eula.txt
pInfo.FileName = sysFolder & "\eula.txt"
'運(yùn)行該文件
Dim p As Process = Process.Start(pInfo)
'等待程序裝載完成
p.WaitForInputIdle()
'等待進(jìn)行程退出
p.WaitForExit()
'繼續(xù)執(zhí)行下面的代碼
MessageBox.Show("繼續(xù)執(zhí)行代碼")


2.我們想在5秒鐘后,強(qiáng)行關(guān)閉它.而不是需要我手工關(guān)閉.
'設(shè)置退出時(shí)間
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)
'檢查是否在超時(shí)前已關(guān)閉了.
If p.HasExited = False Then
'進(jìn)行程還在運(yùn)行
'看進(jìn)程有沒有回應(yīng)
If p.Responding Then
p.CloseMainWindow() '關(guān)閉窗口
Else
p.Kill()'強(qiáng)行中斷
End If
End If
MessageBox.Show("繼續(xù)執(zhí)行代碼")