C#如何呼叫外部exe程式
http://blog.csdn.net/cyamazing/article/details/52849106
1.在主介面新增呼叫外部exe程式的Button,雙擊此Button進入程式碼編輯頁面。
在程式的開始using System.Diagnostics;
然後在初始化函式的上方定義private static System.Diagnostics.Process p;
2.在Button的雙擊事件中,新增如下程式碼:
if (p == null)
{
p = new System.Diagnostics.Process();
p.StartInfo.FileName = "應用程式名字.exe";
p.Start();
}
else
{
if (p.HasExited) //是否正在執行
{
p.Start();
}
}
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
}
3.若想關閉主程式的同時也關閉呼叫的程式,需要在退出程式的按鈕事件中新增如下程式碼:
Process[] pProcess;
pProcess = Process.GetProcesses();
for (int i = 1; i <= pProcess.Length - 1; i++)
{
if (pProcess[i].ProcessName == "應用程式名字") //工作管理員應用程式的名
{
pProcess[i].Kill();
break;
}
}
但是這裡有個問題,點選Button呼叫外部exe程式後,若將外部exe程式最小化,此時再點選主介面的呼叫按鈕時,exe程式不能顯示在螢幕的最前端,只能手動從工作列將其視窗正常化。一時不知如何解決,不過也無傷大雅。
如果只是簡單的呼叫外部的EXE程式檔案,只需要下面一行程式碼就可以搞定。
System.Diagnostics.Process.Start(Application.StartupPath + “你的應用程式.exe”);
如果是等待這個EXE程式執行完畢再執行下面的程式碼其實也是很簡單的,只需要在後面使用WaitForExit()方法即可。
程式碼如下
System.Diagnostics.Process.Start(Application.StartupPath + “你的應用程式.exe”).WaitForExit();
//呼叫外部程式導cmd命令列
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = false;
p.Start();
/ /向cmd.exe輸入command
p.StandardInput.WriteLine("cd C:\\Inetpub\\wwwroot\\Paicdom\\PaWebService\\PaWeb\\Manage\\Exportcsv");
//cmd又呼叫了ociuldr.ex
p.StandardInput.WriteLine("ociuldr.exe");
p.StandardInput.WriteLine("exit"); //需要有這句,不然程式會掛機
//string output = p.StandardOutput.ReadToEnd(); 這句可以用來獲取執行命令的輸出結果