Re: [問題] c#程式執行時,如何接收.bat的回傳值
因為上一篇有高手回覆的內容google過同樣的方法
目前是改寫成一樣寫成bat去執行
然後output出來在bat出現的值放進textbox內
不過有幾個小問題
第一:在執行的過程中,程式會因為在執行,程式感覺像當掉
不過程式是在執行的,請問這有辦法改善嗎?
第二:有辦法一行一行寫進去listbox內嗎? 試過,但output出來的都只會在同一行
第三:因為我有使用StandardError,bat有錯誤訊息會也會一起輸出textbox
我希望能針對這一行錯誤訊息,改變顏色,有google過,說改用richtextbox
小弟超級新手,再麻煩高手提示,謝謝~
※ 引述《virdust2003 (XDXDXDXDXDXD)》之銘言:
: 這是之前讀 asfbin 的輸出用的code
: ProcessStartInfo psiASFBin = new ProcessStartInfo();
: psiASFBin.FileName = AsfbinPath18;
: //路徑需要雙引號能避免路徑有錯(編譯執行無加雙引號有辦法,但封裝後
: 程式剪輯會有bug)
: psiASFBin.Arguments = TrimInputArgument;
: psiASFBin.RedirectStandardOutput = true;
: psiASFBin.UseShellExecute = false;
: psiASFBin.CreateNoWindow = true;
: pTrim = new Process();
: pTrim.StartInfo = psiASFBin;
: pTrim.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
: pTrim.EnableRaisingEvents = true;//未設定此屬性無法啟用事件
: pTrim.Start();
: string ProcessOutput = pTrim.StandardOutput.ReadToEnd();
: ※ 引述《bbsn (bbsn)》之銘言:
: : 方法一:
: : 我用c#產生一個netuse.bat檔,並且執行。
: : 假如我產生的netuse.bat檔需逐一連到PC1、PC2、PC3
: : 若PC2無法netuse的話,有辦法在c#的介面上顯示失敗名單的資料嗎?
: : 目前有想到如果失敗的話,可以直接產生一個.txt檔
: : 給程式讀取,但因為不確定.bat開始到結束要花多久時間
: : 方法二:
: : 逐一產生PC1.bat、PC2.bat、PC3.bat。
: : PC1.bat 執行完後,回傳一個值或是產生一個檔案給程式,程式再產生PC2.bat
: : 回傳的值或是檔案可以讓程式判斷失敗或成功。
: : 其實兩種方法都差不多
: : 但程式要如何接收這個值或是檔案←卡在這不知道要怎麼寫
: : 目前方法二比較接近理想
: : 再麻煩各位高手解答,謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.124.126
推
06/09 19:34, , 1F
06/09 19:34, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):