国产探花免费观看_亚洲丰满少妇自慰呻吟_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);
              }
       }

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特前旗| 大余县| 宜宾市| 团风县| 皮山县| 沿河| 和政县| 江华| 香格里拉县| 曲靖市| 滨海县| 平果县| 腾冲县| 舒兰市| 色达县| 广汉市| 浠水县| 客服| 雷波县| 安图县| 泽库县| 衡南县| 开化县| 巴青县| 江门市| 乐清市| 横山县| 顺平县| 九江县| 桂平市| 阜康市| 华蓥市| 濮阳县| 惠东县| 武乡县| 东莞市| 印江| 磐安县| 革吉县| 肇东市| 金沙县|