在自己的进程内部,我们可以通过 Main
函数传入的参数,也可以通过 Environment.GetCommandLineArgs
来获取命令行参数。
但是,可以通过什么方式来获取另一个运行着的程序的命令行参数呢?
进程内部获取传入参数的方法,可以参见我的另一篇博客:.NET 命令行参数包含应用程序路径吗?。
.NET Framework / .NET Core 框架内部是不包含获取其他进程命令行参数的方法的,但是我们可以在任务管理器中看到,说明肯定存在这样的方法。
实际上方法是有的,不过这个方法是 Windows 上的专属方法。
对于 .NET Framework,需要引用程序集 System.Management
;对于 .NET Core 需要引用 Microsoft.Windows.Compatibility
这个针对 Windows 系统准备的兼容包(不过这个兼容包目前还是预览版本)。
<ItemGroup Condition="$(TargetFramework) == 'netcoreapp2.1'">
<PackageReference Include="Microsoft.Windows.Compatibility" Version="2.1.0-preview.19073.11" />
</ItemGroup>
<ItemGroup Condition=