在自己的进程内部,我们可以通过 Main 函数传入的参数,也可以通过 Environment.GetCommandLineArgs 来获取命令行参数。

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

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

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

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

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

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

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

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

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

  1. 老李推荐:第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数...

    老李推荐:第8章2节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-解析处理命令行参数 MonkeyRunnerStarter是MonkeyRunner启动时的入 ...

  2. 老李推荐:第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数 2...

    我们这一节会先去分析下monkeyrunner是如何对参数进行处理的,我们跳转到MonkeyRunnerOptions这个类里面的processOptions这个方法: 93   public sta ...

  3. 隐藏进程命令行参数,例如输入密码等高危操作

    目录 前言 复写argv参数 获取标准输入 总结 前言 启动程序很多时候用命令行参数可以很方便,做到简化一些配置,但是输入用户名密码等操作,如果通过进程查看工具直接看到密码就太不安全了. 因此很有必要 ...

  4. jcmd 命令_jcmd:一个可以全部统治的JDK命令行工具

    jcmd 命令 我在过去的几篇文章中都引用了方便的JDK工具jcmd ,但是像我以前对jps所做的那样,只专注于它的实用性 . jcmd工具是随Oracle Java 7引入的,通过使用它来识别Jav ...

  5. jcmd:一个可以全部统治的JDK命令行工具

    我在过去的几篇文章中都引用了方便的JDK工具jcmd ,但是像我以前对jps所做的那样,仅专注于其实用性 . jcmd工具是随Oracle Java 7引入的,在通过使用Java标识Java进程的ID ...

  6. 【Linux】孤儿进程 | 环境变量 | 命令行参数 | 进程优先级

    文章目录 1. 孤儿进程 2. 环境变量 1. PATH环境变量 证明ls是系统指令 修改自己写的可执行程序对应路径 2. env--查看系统环境变量 3. 获取环境变量 envp environ g ...

  7. Erlang-编译、运行和命令行参数(转自-“Quick Win -- 五多”)

    1. erlang:halt()可以即刻停止系统运行. 2. q()命令可以完成文件和数据库的一些处理后再退出.它是init:stop()的一个shell别名 3. erlang可以动态加载代码,正在 ...

  8. Linux进程-命令行参数和环境列表

    命令行参数 在C中,main函数有很多的变种,比如 main(), int main(), int main(int argc, char *argv[]), int main(int argc, c ...

  9. 第四章 进程(3)进程的命令行环境变量

    2.进程的命令行 创建一个新进程时,要传递一个命令行(几乎永远不会为空)用于创建新进程的可执行文件的名字时命令行上的第一个标记. A: 当 C运行期的启动代码开始运行的时候,要检索进程的命令行,跳过可 ...

最新文章

  1. 解决goldengate复制进程应用缓慢一例
  2. 记录一次生产发布事件——(简单的非空验证也能引发大问题)
  3. 点击button 验证倒计时
  4. nginx基础概念(100%)之lingering_close
  5. 飞龙的程序员书单 – Linux
  6. 屏蔽系统的故障定位案例
  7. JAVA_JDK下载与安装教程
  8. samba服务设置与访问共享文件夹
  9. 微信网页/微信小程序内实现长按识别二维码
  10. 如何用python画帆船_简单几步,100行代码用Python画一个蝙蝠侠的logo
  11. IDEA控制台为什么不打印日志
  12. WEB编程开发常用的代码 选择自 AppleBBS 的 Blog
  13. (翻译)用户难以阅读全大写文本的原因
  14. 华为荣耀8电信卡显示无服务器,华为荣耀手机实现双电信卡双待双通,5步告诉你真相...
  15. oracle nbu异机恢复,通过NBU进行Oracle异机恢复的实验操作步骤
  16. Nexus基本配置与使用
  17. 【EFI系统分区】关于EFI系统分区的说明
  18. t4 tesla 驱动程序_KVM直通Tesla T4 GPU安装windows虚拟机出现PCIE报错指向GPU
  19. qsv的像素格式转换
  20. 我所理解的开源软件供应链安全

热门文章

  1. xbox one 越狱_如何在Xbox One上播放视频和音乐文件
  2. Linux 练习题-3文件与磁盘 问答
  3. HTML5程序开发范例宝典 完整版 (韩旭等著) 中文pdf扫描版
  4. 二 面向对象三大特性
  5. 【转】《从入门到精通云服务器》第六讲—OpenStack基础
  6. 制作一个类似苹果VFL的格式化语言来描述UIStackView
  7. 有梦想就有前进的动力
  8. 九度 1376 最近零子序列
  9. 技术分享 | 【构建服务端SDK】之连接中心统一调用SDK
  10. C# 常用接口学习 IEnumerableT