如图,任务管理器中的命令行

不说别的,上代码

部分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

c# 筛选进程命令行,得其ProcessId(唯一标示符,简称pid),再通过pid结束进程的更多相关文章

  1. windows上,任务管理器中,进程命令行太长怎么办

    一.前言 在windows上,有时候需要查看进程命令行,但是有的进程的命令行太长了,很难看全 此时,可以使用下面的方法解决(红框改为自己要查看的进程即可): C:\Users\Gaoyu>wmi ...

  2. Linux进程-命令行参数和环境列表

    命令行参数 在C中,main函数有很多的变种,比如 main(), int main(), int main(int argc, char *argv[]), int main(int argc, c ...

  3. Linux强制杀进程命令行工具

    需求, 有时候我们会有手动启动程序, 但是又在后台, 没有像服务那样有start, 和stop的程序, 这时候需要用强制杀进程方式 涉及工具, awk, sed, xargs, kill 需求一: 已 ...

  4. Docker命令行与守护进程如何交互?

    译者按: Docker是典型的C/S架构,其守护进程(daemon)与命令行(CLI)是通过REST API进行交互的. 原文: Understanding how the Docker Daemon ...

  5. windows常用命令行命令

    https://blog.csdn.net/qq_32451373/article/details/77743869 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗 ...

  6. Linux命令行上程序执行的那一刹那!

    转自:http://www.cppblog.com/cuijixin/archive/2008/03/14/44463.html by falcon<zhangjinw@gmail.com> ...

  7. Linux命令行–更多bash shell命令(转)

    4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...

  8. PowerShell并发控制-命令行参数之四问

    传教士问: win下如何 获取进程命令行,及命令行参数? 传教士答: 可以用这个powershell命令(实际上是wmi查询): (get-wmiobject -query "select ...

  9. JVM 第五篇:命令行 JVM 故障处理工具

    本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 引言 虽然我们前面介绍了各种图形化 JVM 故障处理工具,但是很多情况下,我们在处理问题的时候并没有图形化的操作环境可以使用,这时候,就需 ...

随机推荐

  1. hadoop单机

    Hadoop安装教程——单机模式 博客分类: 大数据 Hadoop是MapReduce的开源实现,网上有很多相关的文章,但是很多不全,有的有点乱,本人Ubuntu小白,Hadoop初学者,根据别人的资 ...

  2. 如何在属性面板中增加一个属性-UI界面编辑器(XproerUI)教程

    版权所有 2009-2015 荆门泽优软件有限公司 保留所有权利 产品首页:http://www.ncmem.com/apps/xproerui/index.asp 开发文档(SkinStudio): ...

  3. Git的基础

    http://backlogtool.com/git-guide/cn/intro/intro2_3.html

  4. 在android开发中使用multdex的方法-IT蓝豹为你整理

    Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...

  5. macbook 重装win7

    若是第一次已经成功好了,并且把第一次的安装U盘WININSTALL内容保存完好的前提下, win7要重新安装. 先进入Boot Camp移除Windows,备份好你的WIN系统的重要文件. 把第一次的 ...

  6. MIME Type

    一.首先,我们要了解浏览器是如何处理内容的.在浏览器中显示的内容有 HTML.有 XML.有 GIF.还有 Flash --那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME ...

  7. nullcon HackIM 2016 -- Crypto Question 5

    Now you are one step away from knowing who is that WARRIOR. The Fighter who will decide the fate of ...

  8. centos如何卸载软件

    需要看你的软件包格式: 如果你带有yum,可以直接yum remove xxx如果是rpm包,rpm -e xxxtar包的话需要你直接删除该文件或者make uninstall xxx常见的就这三种

  9. VS C#开发中WinForm中Setting.settings的作用

    .定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: .读取配置值 tex ...

  10. SpringMVC接收页面表单参数

    一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q ...