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

首頁 > 編程 > C# > 正文

C#實現啟動,關閉與查找進程的方法

2020-01-24 01:21:23
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現啟動,關閉與查找進程的方法。分享給大家供大家參考,具體如下:

運行效果截圖如下:

查找/列出進程很容易,但干掉進程得借助系統命令ntsd.exe,詳細用法見下面的代碼 :

using System;using System.Diagnostics;using System.Windows.Forms;namespace ProcessDemo{  public partial class Form1 : Form  {    public Form1()    {      InitializeComponent();    }    private void Form1_Load(object sender, EventArgs e)    {      this.linkLabel1.Links.Add(0, linkLabel1.Text.Length, "http://m.survivalescaperooms.com/");    }    private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)    {      this.linkLabel1.Links[linkLabel1.Links.IndexOf(e.Link)].Visited = true;      string target = e.Link.LinkData as string;      if (target != null && target.StartsWith("http://"))      {        Process.Start(target);      }    }    /// <summary>    /// 列出所有可訪問進程    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void btnList_Click(object sender, EventArgs e)    {      Process[] processes;      processes = Process.GetProcesses();      string str = "";      foreach (Process p in processes)      {        try        {          str = p.ProcessName;          this.lst1.Items.Add("名稱:" + p.ProcessName + ",啟動時間:" + p.StartTime.ToShortTimeString() + ",進程ID:" + p.Id.ToString() );        }        catch (Exception ex)        {          this.lst1.Items.Add(ex.Message.ToString());//某些系統進程禁止訪問,所以要加異常處理        }      }    }    private void btnFind_Click(object sender, EventArgs e)    {      txtFind.Text = txtFind.Text.Trim().ToLower();      if (txtFind.Text.Length > 0)       {        Process[] arrP = Process.GetProcesses();        foreach (Process p in arrP)        {          try          {            if (p.ProcessName.ToLower() == txtFind.Text)            {              MessageBox.Show(txtFind.Text + " 找到了,PID為 " + p.Id.ToString());              return;            }          }          catch { }        }        MessageBox.Show("未找到該進程,請檢查輸入!");      }    }    private void btnKill_Click(object sender, EventArgs e)    {      txtFind.Text = txtFind.Text.Trim().ToLower();      int pid = -1;      if (txtFind.Text.Length > 0)      {        Process[] arrP = Process.GetProcesses();        foreach (Process p in arrP)        {          try          {            if (p.ProcessName.ToLower() == txtFind.Text)            {              pid = p.Id;              break;            }          }          catch { }        }        if (pid != -1)        {          RunCmd("ntsd -c q -p " + pid);        }      }    }    /// <summary>    /// 運行DOS命令    /// DOS關閉進程命令(ntsd -c q -p PID )PID為進程的ID    /// </summary>    /// <param name="command"></param>    /// <returns></returns>    public string RunCmd(string command)    {      Process p = new Process();      p.StartInfo.FileName = "cmd.exe";      p.StartInfo.Arguments = "/c " + command;      p.StartInfo.UseShellExecute = false;      p.StartInfo.RedirectStandardInput = true;      p.StartInfo.RedirectStandardOutput = true;      p.StartInfo.RedirectStandardError = true;      p.StartInfo.CreateNoWindow = true;      p.Start();      return p.StandardOutput.ReadToEnd();    }  }}

另外ntsd.exe在windows vista以上的版本(包括windows 2008)上,出于安全考慮已經被MS給去掉了,但我們可以直接從xp下復制過來繼續使用,這里為方便大家給出ntsd.exe的下載。
希望本文所述對大家C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石棉县| 铜川市| 陵水| 同德县| 沁阳市| 荃湾区| 错那县| 托克逊县| 唐海县| 宁城县| 五常市| 东山县| 确山县| 社旗县| 含山县| 绥芬河市| 桐庐县| 大洼县| 临夏市| 溧阳市| 札达县| 新野县| 敦煌市| 德惠市| 谷城县| 郓城县| 当雄县| 邯郸市| 巩留县| 扎鲁特旗| 日照市| 陕西省| 申扎县| 罗定市| 綦江县| 江永县| 阳原县| 兴宁市| 湛江市| 张北县| 江阴市|