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

时间:2022-12-31 17:01:03

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

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

不说别的,上代码

部分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&gt ...

  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. memcached安装配置&plus;基础操作

    先安装依赖关系 下载libevent-2.0.21-stable.tar.gz wget https://github.com/downloads/libevent/libevent/libevent ...

  2. JavaScript 函数的两种声明方式

    1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...

  3. 批量另存mxd

    在GIS数据处理中,批量操作是经常遇到的问题,Python脚本是解决问题的最好方法.现在需要将arcgis10.1的mxd另存为10.0,不仅数量较多,而且每个mxd要素和标注非常多,手动来操作确实慢 ...

  4. C&num; Winform中如何获取文件名与文件路径

    获取文件名方法: 用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法 获取文件路径方法: / ...

  5. UVA 12651 Triangles

    You will be given N points on a circle. You must write a program to determine how many distinctequil ...

  6. Java程序打包成jar包

    方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] ...

  7. &lbrack;Javascript&rsqb; Safe Nested Object Inspection

    A common problem when dealing with some kinds of data is that not every object has the same nested s ...

  8. 三种java 去掉字符串中的重复字符函数

    三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...

  9. hdu 4117 -- GRE Words &lpar;AC自动机&plus;线段树&rpar;

    题目链接 problem Recently George is preparing for the Graduate Record Examinations (GRE for short). Obvi ...

  10. Hibernate使用sql语句实现多表关联查询

    /** * <查找list> * * @return 返回页面需要显示的数据 */ @SuppressWarnings("unchecked") public List ...