C#WMI流程差异化?

Goo*_*ber 5 c# wmi

脚本

我有一个方法,使用WMI返回进程列表.如果我有3个进程正在运行(所有这些都是C#应用程序) - 并且它们都具有相同的进程名称但命令行参数不同,我如何区分它们如果我想启动它们或终止它们!?

思考

据我所知,我实际上无法区分它们,至少不是不必使用Handle,但这并不能告诉我哪一个被终止,因为其他人仍然会坐在那里同名. ......

....真的很难过,非常感谢!

Mik*_*all 1

WMI Win32_ProcessObject有一个CommandLine属性,如果您知道该属性可以区分实例,则可以使用该属性。

\n\n
string query = \xe2\x80\x9cSelect * From Win32_Process Where Name = \xe2\x80\x9c + processName;\nManagementObjectSearcher searcher = new ManagementObjectSearcher(query);\nManagementObjectCollection processList = searcher.Get();\n\nforeach (ManagementObject obj in processList)\n{\n     string cmdLine = obj.GetPropertyValue("CommandLine").ToString();\n\n     if (cmdLine == "target command line options")\n     {\n          // do work\n     }\n}\n
Run Code Online (Sandbox Code Playgroud)\n