兩個函式宣告,需要
using System.Diagnostics;
----------------------使用方式-------------------------------------------
OpenPress("AAA.exe", " ");//開啟外部檔案
ClosePress("AAA.exe");//關閉外部檔案
----------------------以下為函式-------------------------------------------
public static bool OpenPress(string FileName, string Arguments)//開啟外部檔案
{
Process pro = new Process();
if(System.IO.File.Exists(FileName))
{
pro.StartInfo.FileName = FileName;
pro.StartInfo.Arguments = Arguments;
pro.StartInfo.CreateNoWindow = true;
pro.StartInfo.CreateNoWindow = true;
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.RedirectStandardOutput = true;
pro.StartInfo.CreateNoWindow = true;
pro.Start();
return true;
}
return false;
}
public static bool ClosePress(string FileName)//關閉外部檔案
{
Process[] proa = Process.GetProcesses();//獲取任務管理器中所有進程
foreach(Process p1 in proa)
{
try
{
string processName = p1.ProcessName.ToLower().Trim();
if(processName == FileName)
{
p1.WaitForExit(1000);
p1.Kill();
p1.CloseMainWindow();
}
}
catch { return false; }
}
return true;
}
----------分隔線 說明--------------------
1.前言
透過程式控制,可在背景執行cmd.exe的命令。
2.說明
程式碼,提供兩種方式執行命令:
//程式碼最少,但是會跳出DOS視窗,閃一下後自行關閉
System.Diagnostics.Process.Start("cmd.exe", @"/c dir");
//在背景執行,無DOS視窗閃爍問題
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = @"/c dir";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();