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结束进程的更多相关文章
- windows上,任务管理器中,进程命令行太长怎么办
一.前言 在windows上,有时候需要查看进程命令行,但是有的进程的命令行太长了,很难看全 此时,可以使用下面的方法解决(红框改为自己要查看的进程即可): C:\Users\Gaoyu>wmi ...
- Linux进程-命令行参数和环境列表
命令行参数 在C中,main函数有很多的变种,比如 main(), int main(), int main(int argc, char *argv[]), int main(int argc, c ...
- Linux强制杀进程命令行工具
需求, 有时候我们会有手动启动程序, 但是又在后台, 没有像服务那样有start, 和stop的程序, 这时候需要用强制杀进程方式 涉及工具, awk, sed, xargs, kill 需求一: 已 ...
- Docker命令行与守护进程如何交互?
译者按: Docker是典型的C/S架构,其守护进程(daemon)与命令行(CLI)是通过REST API进行交互的. 原文: Understanding how the Docker Daemon ...
- windows常用命令行命令
https://blog.csdn.net/qq_32451373/article/details/77743869 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗 ...
- Linux命令行上程序执行的那一刹那!
转自:http://www.cppblog.com/cuijixin/archive/2008/03/14/44463.html by falcon<zhangjinw@gmail.com> ...
- Linux命令行–更多bash shell命令(转)
4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...
- PowerShell并发控制-命令行参数之四问
传教士问: win下如何 获取进程命令行,及命令行参数? 传教士答: 可以用这个powershell命令(实际上是wmi查询): (get-wmiobject -query "select ...
- JVM 第五篇:命令行 JVM 故障处理工具
本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 引言 虽然我们前面介绍了各种图形化 JVM 故障处理工具,但是很多情况下,我们在处理问题的时候并没有图形化的操作环境可以使用,这时候,就需 ...
随机推荐
- toolkit:Accordion DataTemplate ListBox TextBlock Interaction.Triggers
困扰好几个小时的问题终于解决了,本人系菜鸟,使用MVVM设计模式,绑定DataTemplate的Command,需要使用 DataContent的资源,否则无法触发ICommand ClickChil ...
- mssql2000 身份证号码验证
CREATE VIEW thisDate --返回当前日期,因为自定义函数中不能使用GETDATE() AS ),) AS aDate )) /*mssql2000 返回值=0,身份证校验正确 1:位 ...
- Elasticsearch 字段数据类型
Elasticsearch 可以支持单个document中含有多个不同的数据类型. 核心数据类型(Core datatypes) 字符型(String datatype):string 数字型(Num ...
- Oracle 添加字段,并自增
第一步:alter table TOWN add ID int 第二步:Update TOWN set id=rownum; Commit;
- C语言中的回调函数(Callback Function)
1 定义和使用场合 回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数.函数是你实现 ...
- (转)tar.xz文件如何解压
XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数Linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到 ...
- ELK:kibana使用的lucene查询语法【转载】
kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...
- iOS8 定位补充
iOS 8定位补充 iOS 8定位需要修改2个地方 1.info.plist文件中添加NSLocationAlwaysUsageDescription:描述信息 从iOS 8开始,用户定位分两种情况 ...
- Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询
Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询 SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL ...
- php_access_ADOConn 备忘
1.咕~~(╯﹏╰)b 各种乱码. 2.本来是MFC+Access 用msado15.dll写的系统,闲的想用php改改. Demo.php <meta http-equiv="Con ...