C#

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

发布于 2021-02-02 16:11:11

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

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

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

但是,无法访问用于启动此过程的命令行。一个人怎么做?

关注者
0
被浏览
106
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果您没有使用Start方法来启动进程,则StartInfo属性不会反映用于启动进程的参数。例如,如果使用GetProcesses获取在计算机上运行的一系列进程,则每个Process的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"]);
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看