zoukankan      html  css  js  c++  java
  • 得到系统进程和结束某个指定的进程

    看到这篇文章,关闭指定的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);
        }
       }
      
    这样可以关闭有主窗体的进程,但是没有主窗体的还不行
    还请大家多多指教

  • 相关阅读:
    Topcoder SRM656div1 250 ( 期望DP )
    SCAU 2015 GDCPC team_training1
    第五次群赛暨清明节专场
    HDU 2783 You’ll be Working on the Railroad(最短路)
    HDU 4013 Distinct Subtrees(树的最小表示)
    HDU 4014 Jimmy’s travel plan(图计数)
    SCAU 2015 GDCPC team_training0
    HDU 1024 Max Sum Plus Plus (递推)
    UVA 12849 Mother’s Jam Puzzle( 高斯消元 )
    HDU 4285 circuits( 插头dp , k回路 )
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/17879.html
Copyright © 2011-2022 走看看