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

不说别的,上代码

部分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. MVC开发基础

    新建--项目--ASP.NET MVC 4 WEB 应用程序 MVC: M--Model  模型层     放置数据访问类,linq V--View  视图层       界面层   aspx文件.只 ...

  2. openvpn配置教程

    openvpn配置教程 本文是为解决本地服器能从外网访问web页,从新改写(临摹) 烂泥:ubuntu 14.04搭建OpenVPN服务器这篇文章 腾讯云为服务器,本地服务器为客户端 一.服务器安装o ...

  3. Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号

    www.cnblogs.com/zhangzhu/archive/2013/08/22/3274831.html 如何开启MySQL的远程帐号-1)首先以 root 帐户登陆 MySQL 在 Wind ...

  4. mysql的约束类型

    1.主键约束 2.非空约束 3.唯一性约束 4.外键约束 5.默认值约束

  5. Versioned table in Netezza

    Problem One QC process need to obtain tables and their row counts in a database in Netezza. We use t ...

  6. linux终端terminal个性化配置(转)

    http://blog.csdn.net/pipisorry/article/details/39584489 {本文介绍Linux终端字体颜色设置.终端提示符显示内容设置.自定义alias命令} l ...

  7. PCIE学习

    PCIe在传输中用8b/10b编码,所以单PCEe2.0的有效带度是4Gb/s x2模式将用于内部接口而非插槽模式 PCIe卡能使用在至少与之传输通道相当的插槽上(例如x1接口的卡也能工作在x4或x1 ...

  8. liunx 开机流程与模块管理

    系统开机的经过可以汇整成底下的流程的: 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置: 读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub ...

  9. 网站appache的ab命令压力测试性能

    ①:相关不错的博文链接:http://johnnyhg.iteye.com/blog/523818 ②:首先配置好对应的环境上去,有对应的命令 ③:压力测试的指令如下: 1. 最基本的关心两个选项 - ...

  10. Struts2 验证框架 validation.xml 常用的验证规则

    validation.xml 的命名规则和放置路径: 文件名:<ActionClassName>-validation.xml <ActionClassName>就是要验证的A ...