如圖,任務管理器中的命令行
不說別的,上代碼
部分using:
using System.Diagnostics; using System.Management;
其中要引用System.Management
1.通過篩選CommandLine查出pid
其中涉及Environment類的一些知識,大家可以自行查看:鏈接https://msdn.microsoft.com/zh-cn/library/system.environment(v=vs.110).aspx
/// <summary> /// 通過篩選CommandLine查出pid /// </summary> /// <param name="thanName1">條件one</param> /// <returns></returns> private static List<processId1> GetProcessId(string thanName1) { List<processId1> results = new List<processId1>(); SelectQuery query1 = new SelectQuery("Select * from Win32_Process WHERE CommandLine like '%" + thanName1 + "%'"); ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1); try { foreach (ManagementObject disk in searcher1.Get()) { results.Add(new processId1() { processId01 = disk["ProcessId"].ToString(), CommandLine = disk["CommandLine"].ToString(), name = disk["Name"].ToString() }); } } catch { return null; } return results; }
2.通過pid殺進程
/// <summary> /// 通過pid殺進程 /// </summary> /// <param name="strProcid"></param> public void KillProcessid(string strProcid) { try { foreach (Process p in Process.GetProcesses()) { if (p.Id.Equals(Int32.Parse(strProcid))) { if (!p.CloseMainWindow()) { p.Kill(); } else { p.Kill(); } } } } catch { MessageBox.Show("Error"); } }
3.button里的
private void btn_skilladvertising_Click(object sender, EventArgs e) { string criteriaOne = "QQ"; string str = null; try { foreach (processId1 item in GetProcessId(criteriaOne)) { KillProcessid(item.processId01); str += "已結束 " + item.processId01 + "\n"; } } catch { str = "Error"; } MessageBox.Show(str); }
4.我構造的類,其中有些沒用到,大家自己修改
public class processId1 { public string CommandLine { get; set; } public string processId01 { get; set; } public string name { get; set; } }
5.其他一些結束進程的方法可以參照http://blog.csdn.net/xrongzhen/article/details/5838690
6.其他的一些知識:
(1).this.MaximizeBox = false;//禁止窗口手動最大化,包括雙擊標題欄
(2).this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;//最開始窗口出現在屏幕中心
2016-11-11 14:28:57