此代碼執行「handbrakecli」(命令行應用)和輸出放入一個字符串:重定向並解析在長時間運行的過程的實時標準輸出在vb.net
Dim p As Process = New Process
p.StartInfo.FileName = "handbrakecli"
p.StartInfo.Arguments = "-i [source] -o [destination]"
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.Start
Dim output As String = p.StandardOutput.ReadToEnd
p.WaitForExit
的問題是,這可能需要長達20分鐘的時間才能完成,在此期間不會向用戶報告任何內容。完成後,他們將看到應用程序的所有輸出,其中包含進度詳細信息。不是很有用。
所以我試圖找到一個示例,演示的最佳途徑:
- 啓動外部應用程序(隱藏)
- 定期監測其輸出,因爲它顯示有關它的進步(所以我可以提取此並向用戶展示不錯的百分比條)
- 確定外部應用程序何時完成(因此我無法繼續執行我自己的應用程序)
- 如果有必要,請殺死外部應用程序,並檢測此時間發生(所以,如果用戶點擊「取消」,我會採取適當的步驟)
有沒有人有任何推薦的代碼片段?
這是非常多的,只是大塊閱讀它。 – NibblyPig 2010-04-12 15:15:59