C# 获取.NET Core中另一个进程的命令行
访问C# 获取.NET Core中另一个进程的命令行,c#,windows,command-line,process,.net-core,C#,Windows,Command Line,Process,.net Core,访问StartInfo属性时,以下代码引发了一个invalidoOperationException:“此对象未启动进程,因此无法确定请求的信息” using System; using System.Diagnostics; using System.Linq; namespace ProcArgs { class Program { static void Main(string[] args) { var proce
StartInfo
属性时,以下代码引发了一个invalidoOperationException
:“此对象未启动进程,因此无法确定请求的信息”
using System;
using System.Diagnostics;
using System.Linq;
namespace ProcArgs
{
class Program
{
static void Main(string[] args)
{
var process = Process.GetProcessesByName("svchost").FirstOrDefault();
Console.WriteLine(process.StartInfo.Arguments);
}
}
}
那么,如何获取.NET Core 2.2(Windows)中另一个已在运行的进程的命令行呢?您是以管理员身份运行的吗?以管理员身份运行它没有任何帮助。:“字符串仅仅是一个“预初始化变量”,一个进程原则上可以这样做(实际上很多进程都是这样做的,尽管通常是无意的)写入保存命令行的内存,在这种情况下,如果您四处寻找它,您将看到修改后的命令行。内核保存“真实原始命令行”的地方没有秘密的隐藏处,正如C编译器保存“函数的真实原始参数”的地方没有秘密的隐藏处一样。使用Windows Compatibility Pack,您应该能够运行WMI查询来获取这些参数。例如