我有一个方法,使用WMI返回进程列表.如果我有3个进程正在运行(所有这些都是C#应用程序) - 并且它们都具有相同的进程名称但命令行参数不同,我如何区分它们如果我想启动它们或终止它们!?
据我所知,我实际上无法区分它们,至少不是不必使用Handle,但这并不能告诉我哪一个被终止,因为其他人仍然会坐在那里同名. ......
....真的很难过,非常感谢!
WMI Win32_ProcessObject有一个CommandLine属性,如果您知道该属性可以区分实例,则可以使用该属性。
\n\nstring 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}\nRun Code Online (Sandbox Code Playgroud)\n