欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-14 17:26:44
在进行winform开发过程中有时候会需要关闭其他程序或者关闭进程,以前写过一篇相关介绍的文章,今天有同事问起来,于是在次翻出来和大家分享一下。 下面介绍我所知的两种方法...

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

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

方法1
procname 需要关闭的进程名称

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

在类体中的最上方声明:

[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);