得到系统进程和结束某个指定的进程

原创 2004年10月21日 22:45:00
 看到这篇文章,关闭指定的IE实例:
http://www.c-sharpcorner.com/Code/2002/Mar/CaptRunIEInstances.asp

自己想了另一个办法来作

先修改注册表:
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);
    }
   }
  
这样可以关闭有主窗体的进程,但是没有主窗体的还不行confused_smile.gif


C#得到系统进程和结束某个指定的进程

获得当前计算机系统内所有的已启动的进程:System.Diagnostics.Process[] processOnComputer = System.Diagnostics.Process.GetP...
  • whfill
  • whfill
  • 2007年06月20日 14:27
  • 413

得到系统进程和结束某个指定的进程

Posted on 2004-06-22 19:23 Cure 阅读(951) 评论(1)编辑收藏看到这篇文章,关闭指定的IE实例:http://www.c-sharpcorner.com/Code/...
  • Miracle_Lee
  • Miracle_Lee
  • 2011年04月03日 08:20
  • 339

得到系统进程和结束某个指定的进程 (C#)

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 13:26
  • 129

Android之——系统进程与用户进程分离

在上一篇博文《Android之——杀死用户选中的进程优化》一文中,我向大家介绍了如何优化用户的体验,那么这篇博文中,我将向大家介绍如何进行系统进程与用户进程的分离操作。同样,这篇博文是基于上一篇博文改...
  • l1028386804
  • l1028386804
  • 2015年08月04日 21:15
  • 2020

如何对系统中的某个进程进行监控

最近看到一篇文章,就是如何对系统某个进程进行监控,并且当这个进程触发某些事件的时候,能进行相应。而且发现有人问这方面的问题,我就大致在其原有的基础进行如下的修改。 首先说明的一点,方法是基于WMI的。...
  • Knight94
  • Knight94
  • 2006年03月21日 14:51
  • 5644

java 杀死指定进程

import java.io.BufferedReader; import java.io.InputStreamReader; public class Test {            ...
  • xwq911
  • xwq911
  • 2016年04月13日 15:05
  • 405

禁止系统运行某个进程的简单方法(代码实现)

转载请标明是引用于 http://blog.csdn.net/chenyujing1234  欢迎大家拍砖!       一、解决方法 1、理论 要对一个任意进程(包括系统安全进程和服务...
  • chenyujing1234
  • chenyujing1234
  • 2012年07月28日 18:40
  • 4332

C++ 关闭其他进程

BOOL bTerminateProcess = FALSE; HWND hwndException = NULL; BOOL CALLBACK EnumWindowsProc(_In_ HWND h...
  • sz76211822
  • sz76211822
  • 2016年10月26日 17:36
  • 651

学习RING3 内存清零结束进程

内存清零法 杀进程 原理分析 :1.先打开CSRSS.EXE系统进程,获得其句柄,几乎系统所有的HANDLE结构体中,里面的ProcessId都是指向csrss.exe的,利用它的PID来进行遍历进程...
  • nickwu1220
  • nickwu1220
  • 2011年03月31日 17:47
  • 1646

linux系统的内核进程/用户进程和轻量级进程区别与联系

本文摘自点击打开链接 在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集合资源集。进程中的线程是动态的对象;代表了...
  • xzongyuan
  • xzongyuan
  • 2014年02月24日 14:54
  • 881
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:得到系统进程和结束某个指定的进程
举报原因:
原因补充:

(最多只允许输入30个字)