C#实现关闭其他程序窗口或进程代码分享
在进行winform开发过程中有时候会需要关闭其他程序或者关闭进程,以前写过一篇相关介绍的文章,今天有同事问起来,于是在次翻出来和大家分享一下。
下面介绍我所知的两种方法,应该对大家有帮助,如果有朋友知道其他的方法,谢谢共享一下。
方法1
ProcName需要关闭的进程名称
privateboolcloseProc(stringProcName)
{
boolresult=false;
System.Collections.ArrayListprocList=newSystem.Collections.ArrayList();
stringtempName="";
foreach(System.Diagnostics.ProcessthisProcinSystem.Diagnostics.Process.GetProcesses())
{
tempName=thisProc.ProcessName;
procList.Add(tempName);
if(tempName==ProcName)
{
if(!thisProc.CloseMainWindow())
thisProc.Kill();//当发送关闭窗口命令无效时强行结束进程
result=true;
}
}
returnresult;
}
上面程序里定义了一个ArrayList,当不知道所要关闭的进程的具体名称的时候,可以将ArrayList中的值放到一个listbox或其他的控件里面用来选择进程进行结束。
方法2
在类体中的最上方声明:
[DllImport("user32.dll",CharSet=CharSet.Auto)]
publicstaticexternintSendMessage(inthWnd,intmsg,intwParam,intlparam);
//SendMessage(hwnd1,WM_CLOSE,0,0);
//hwnd1是你用findwindow函数返回的句柄值
//wm_close定义在winuser.h里面
//0x0010是WM_CLOSE的值
SendMessage(hwnd1,0x0010,0,0);