当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中读取另一个进程的命令行参数?

如何解决《如何在C#中读取另一个进程的命令行参数?》经验,为你挑选了2个好方法。

如何获取另一个进程的命令行参数?

使用System.Diagnostics.Process类的静态函数我可以获取正在运行的进程列表,例如:

Process[] processList = Process.GetProcessesByName(processName);

但是,无法访问用于启动此过程的命令行.如何做到这一点?



1> xcud..:

如果未使用Start方法启动进程,则StartInfo属性不会反映用于启动进程的参数.例如,如果使用GetProcesses获取计算机上运行的进程数组,则每个进程的StartInfo属性不包含用于启动进程的原始文件名或参数.(来源:MSDN)

Stuart的WMI建议很好:

string wmiQuery = string.Format("select CommandLine from Win32_Process where Name='{0}'", processName);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
ManagementObjectCollection retObjectCollection = searcher.Get();
foreach (ManagementObject retObject in retObjectCollection)
    Console.WriteLine("[{0}]", retObject["CommandLine"]);



2> stuartd..:

如果你的目标是Windows XP或更高版本,并且你能负担得起WMI的开销,一个可能性是查找使用WMI的目标进程Win32_Process类,它有一个命令行属性.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有