簡體   English   中英

在Visual Basic中運行批處理文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM