国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#中得到系統進程并結束指定的進程

2023-05-17 11:42:01
字體:
來源:轉載
供稿:網友

先修改注冊表:

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

這樣可以關閉有主窗體的進程,但是沒有主窗體的還不行

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左权县| 海伦市| 米泉市| 巴中市| 双城市| 宜黄县| 剑河县| 温宿县| 大英县| 弥勒县| 当涂县| 黔东| 文成县| 清河县| 延津县| 荔浦县| 隆林| 含山县| 云龙县| 赤水市| 大厂| 嘉荫县| 德阳市| 临沧市| 仁布县| 那坡县| 图们市| 铅山县| 长兴县| 黑龙江省| 南宫市| 芜湖市| 天气| 玉林市| 河津市| 通辽市| 冀州市| 衢州市| 昭苏县| 务川| 河源市|