[英]Run Batch file in Visual Basic
我對在Visual Basic中運行批處理文件有幾個疑問。
Windows窗體中有一個基於VB的按鈕,並且按鈕具有單擊事件。
示例代碼:
Dim pathtobatfile2 As String
pathtobatfile2 = "C:\extract.bat"
...............
psi2.UseShellExecute = False
Dim process2 As Process = process.Start(psi)
process2.WaitForExit()
'then do something after the bat file done
上面的代碼表示當用戶單擊按鈕時,一個隱藏的批處理文件(.bat)在后端運行。
我的問題是,當用戶單擊此btn時,整個應用程序窗口將被凍結,甚至無法最小化到任務欄。
有什么方法可以運行批處理文件,獲得一些返回值,讓我知道它已完成? 還是什么狀態? 因為我也想顯示進度條。
有任何想法嗎? 提前致謝。
Any ideas?
是的,在使用.NET
類進行編程時,盡量不要依賴Batch
。
無論如何使用process2.WaitForExit()
您都在等待進程退出,這就是程序凍結,程序線程正在等待的原因。
一個簡單的解決方案是這樣的:
Dim process2 As Process With ...
...
process2.Start()
While Not process2.HasExited
Application.doevents()
End While
' Here the process has exited,
' Then add your code here.
存在執行此操作的更好方法(多線程,Backgroundworker),但是由於您是該語言的新手,並且依賴於簡單語言(例如Batch
因此我建議您使用簡單的方法,但這是在多線程技術中引入的一個好主意。
PS:請原諒我的英語。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.