C#隨手筆記——呼叫外部程式
阿新 • • 發佈:2019-02-12
工作中常常遇到這樣的問題,一些被封裝好的工具已經實現了我們某個步驟所需的功能,在不影響整體使用效果情況下,我們可以通過呼叫外部程式並執行相關操作來達成程式的目的。這裡分享一個可以呼叫外部程式的方法,即using System.Diagnostics,C#中提供了這個名稱空間下的Process類來實現呼叫其他程式的方法,瞭解cmd指令的朋友都清楚,作為Windows的Shell語言,cmd指令算是可以完成絕大多數的系統操作了,通過它來開啟某個程式是我們的實現思路。
// 呼叫CMD指令 public void CMD(string command) { //定義好cmd程序 Process p = new Process(); p.StartInfo.FileName = "cmd.exe";//開啟cmd p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true;//是否允許輸入 p.StartInfo.RedirectStandardOutput = true;//是否允許輸出 p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true;//是否顯示cmd視窗,true為不顯示 p.Start(); p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit");//最後輸入exit退出cmd p.StandardInput.AutoFlush = true; string result = p.StandardOutput.ReadToEnd();//獲取執行結果 p.WaitForExit(); p.Close(); Console.WriteLine(result); //return result; }
當然,通過cmd再來開啟某個程式是不是顯得多此一舉呢,所以這個方法我寫出來只是作為通用性的方法,cmd指令中有很多有意思的內容,比如遠端對映,獲取底層硬體配置等等,在引數command中傳入相應的指令即可,大家可以自己多嘗試。而直接開啟一個程式的話我們可以這樣簡寫:
//呼叫外部程式 private void openExternalProgram(string exeName) { var p = new System.Diagnostics.Process(); p.StartInfo.FileName = exeName; p.Start(); p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; }
開啟程式之後我們再結合獲取控制代碼及模擬鍵盤輸入等一系列操作,“投機取巧”的獲取我們想要的結果,後續我會繼續更新相關的知識~對大家有幫助的話還希望點贊給個鼓勵呢!