首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#高级应用

C#中得到系统进程并结束指定的进程

减小字体 增大字体 作者:不详  来源:编程爱好者  发布时间:2010-09-21 07:47:00

先修改注册表:

HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Service\\PerfProc\\Performance下的:Disable Performance Counters 的值改为0

得到系统当前进程,加入到listBox中:

System.Diagnostics.Process[] processOnComputer = System.Diagnostics.Process.GetProcesses();

foreach ( System.Diagnostics.Process p in processOnComputer )
       {
              this.listBox1.Items.Add(p.ProcessName);
       }

关闭某个指定的进程:

System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName(this.listBox1.SelectedItem.ToString());

foreach ( System.Diagnostics.Process p in process)
       {
              p.Kill();
       }

但是这样会关闭进程的所有实例,比如如果你打开了多个IE,会把所有的IE窗口都关闭。

下面实现关闭某个特定的IE实例

先声明一个ArrayList:

ArrayList windowHandle = new ArrayList();

得到指定进程的所有实例,放到一个ListBox中,同时把主窗口的Handle放到ArrayList中:

System.Diagnostics.Process[] processOnComputer = System.Diagnostics.Process.GetProcessesByName(this.listBox1.SelectedItem.ToString());

foreach ( System.Diagnostics.Process p in processOnComputer )
       {
              this.listBox2.Items.Add(p.MainWindowTitle);//在ListBox中显示主窗体的标题
              windowHandle.Add(p.MainWindowHandle);
       }

把指定的进程的主窗口的Handle和ArrayList中的比对,如果符合就关闭

System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName(this.listBox1.SelectedItem.ToString());

foreach ( System.Diagnostics.Process p in process )
       {
              if ( p.MainWindowHandle == (System.IntPtr)(windowHandle[this.listBox2.SelectedIndex]))
              {
                     p.Kill();
                     this.listBox2.Items.RemoveAt(this.listBox2.SelectedIndex);
              }
       }

这样可以关闭有主窗体的进程,但是没有主窗体的还不行


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:进程 C#

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.