您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

C#实现关闭其他程序窗口或进程代码分享

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   这篇文章主要介绍了C#实现关闭其他程序窗口或进程代码分享,本文给出了两种方法,并分别给出示例代码,需要的朋友可以参考下

  在进行winform开发过程中有时候会需要关闭其他程序或者关闭进程,以前写过一篇相关介绍的文章,今天有同事问起来,于是在次翻出来和大家分享一下。

  下面介绍我所知的两种方法,应该对大家有帮助,如果有朋友知道其他的方法,谢谢共享一下。

  方法1

  ProcName 需要关闭的进程名称

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 private bool closeProc(string ProcName) { bool result = false; System.Collections.ArrayList procList = new System.Collections.ArrayList(); string tempName = "";   foreach (System.Diagnostics.Process thisProc in System.Diagnostics.Process.GetProcesses()) { tempName = thisProc.ProcessName; procList.Add(tempName); if (tempName == ProcName) { if (!thisProc.CloseMainWindow())         thisProc.Kill(); //当发送关闭窗口命令无效时强行结束进程 result = true; } } return result; }

  上面程序里定义了一个ArrayList,当不知道所要关闭的进程的具体名称的时候,可以将ArrayList 中的值放到一个listbox或其他的控件里面用来选择进程进行结束。

  方法2

  在类体中的最上方声明:

  ?

1 2 3 4 5 6 7 8 [DllImport("user32.dll", CharSet=CharSet.Auto)] public static extern int SendMessage(int hWnd, int msg, int wParam, int lparam);   //SendMessage(hwnd1,WM_CLOSE,0,0); //hwnd1是你用findwindow函数返回的句柄值 //wm_close定义在winuser.h里面 //0x0010是 WM_CLOSE的值 SendMessage(hwnd1,0x0010,0,0);