.NET/C# 获取一个正在运行的进程的命令行参数



但是,可以通过什么方式来获取另一个运行着的程序的命令行参数呢?


进程内部获取传入参数的方法,可以参见我的另一篇博客:.NET 命令行参数包含应用程序路径吗?。


.NET Framework / .NET Core 框架内部是不包含获取其他进程命令行参数的方法的,但是我们可以在任务管理器中看到,说明肯定存在这样的方法。


.NET/C# 获取一个正在运行的进程的命令行参数_第1张图片


实际上方法是有的,不过这个方法是 Windows 上的专属方法。


对于 .NET Framework,需要引用程序集 System.Management;对于 .NET Core 需要引用 Microsoft.Windows.Compatibility 这个针对 Windows 系统准备的兼容包(不过这个兼容包目前还是预览版本)。

.NET/C# 获取一个正在运行的进程的命令行参数_第2张图片


然后,我们使用 ManagementObjectSearcherManagementBaseObject 来获取命令行参数。


为了简便,我将其封装成一个扩展方法,其中包括对于一些异常的简单处理。

.NET/C# 获取一个正在运行的进程的命令行参数_第3张图片


使用此方法得到的命令行参数是一个字符串,而不是我们通常使用字符串时的字符串数组。如果你需要将其转换为字符串数组,可以使用我在另一篇博客中使用的方法:


  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args


参考资料


本文会经常更新,请阅读原文: https://walterlv.com/post/get-command-line-for-a-running-process.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。


如果你想持续阅读我的最新博客,请点击 RSS 订阅,或者前往 CSDN 关注我的主页。 

原文地址:https://walterlv.com/post/get-command-line-for-a-running-process.html

 
   

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


你可能感兴趣的:(.NET/C# 获取一个正在运行的进程的命令行参数)