using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { // 关闭记事本的进程 CloseNotepad(); } /// <summary> /// 关闭记事本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public static void CloseNotepad() { on: string process = ProcessHelper.CheckProcessName("notepad"); if (process != string.Empty) { ProcessHelper.StopProcess(process); System.Threading.Thread.Sleep(1000); goto on; } } } public class ProcessHelper { /// <summary> /// 关闭一个进程 /// </summary> /// <param name="processName">进程名</param> public static void StopProcess(string processName) { try { foreach (Process thisProc in Process.GetProcessesByName(processName)) { //if (!thisProc.CloseMainWindow()) //{ thisProc.Kill(); //} } while (true) { if (!CheckProcessIsExit(processName)) { return; } } } catch (Exception exc) { throw exc; } } /// <summary> /// 检查一个进程是否在运行中 /// </summary> /// <param name="processName">进程名</param> /// <returns></returns> public static bool CheckProcessIsExit(string processName) { bool flag = false; try { foreach (Process thisProc in Process.GetProcesses()) { if (thisProc.ProcessName.Equals(processName)) { flag = true; break; } } } catch { flag = true; } return flag; } /// <summary> /// 检查一个进程是否在运行中 /// </summary> /// <param name="processName">进程名</param> /// <returns></returns> public static string CheckProcessName(string processName) { string flag = ""; try { foreach (Process thisProc in Process.GetProcesses()) { if (thisProc.ProcessName.Equals(processName)) { flag = thisProc.ProcessName; break; } } } catch { flag = ""; } return flag; } } }