C# 調用exe傳參,並獲取打印值的實例
調用方法:
string baseName = System.IO.Directory.GetCurrentDirectory(); // baseName+"/" // string fileName = @"C:\Users\59930\Desktop\20170605\WindowsFormsApp1\WindowsFormsApp1\WindowsFormsApp1\bin\x86\Debug\WindowsFormsApp1.exe"; string fileName = baseName + @"\CardRead.exe"; string para = "1.exe " + code; Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = fileName; p.StartInfo.CreateNoWindow = true; p.StartInfo.Arguments = para;//參數以空格分隔,如果某個參數為空,可以傳入”” p.Start(); p.WaitForExit(); string output = p.StandardOutput.ReadToEnd();
調用的exe 返回值中寫
Console.Write(mmma);
補充:c#調用外部exe的方法有簡單,有復雜的。
最簡單的就是直接利用process類
using System.Diagnostics; Process.Start(" demo.exe");
想要詳細設置的話,就
public static void RunExeByProcess(string exePath, string argument) { //創建進程 System.Diagnostics.Process process = new System.Diagnostics.Process(); //調用的exe的名稱 process.StartInfo.FileName = exePath; //傳遞進exe的參數 process.StartInfo.Arguments = argument; process.StartInfo.UseShellExecute = false; //不顯示exe的界面 process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardInput = true; process.Start(); process.StandardInput.AutoFlush = true; //阻塞等待調用結束 process.WaitForExit(); }
如果想獲取調用程序返回的的結果,那麼隻需要把上面的稍加修改增加返回值即可:
public static string RunExeByProcess(string exePath, string argument) { //創建進程 System.Diagnostics.Process process = new System.Diagnostics.Process(); //調用的exe的名稱 process.StartInfo.FileName = exePath; //傳遞進exe的參數 process.StartInfo.Arguments = argument; process.StartInfo.UseShellExecute = false; //不顯示exe的界面 process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardInput = true; process.Start(); process.StandardInput.AutoFlush = true; string result = null; while (!process.StandardOutput.EndOfStream) { result += process.StandardOutput.ReadLine() + Environment.NewLine; } process.WaitForExit(); return result; }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found