.NET/C# 获取一个正在运行的进程的命令行参数
在自己的进程内部,我们可以通过 Main
函数传入的参数,也可以通过 Environment.GetCommandLineArgs
来获取命令行参数。
但是,可以通过什么方式来获取另一个运行着的程序的命令行参数呢?
进程内部获取传入参数的方法,可以参见我的另一篇博客:.NET 命令行参数包含应用程序路径吗?。
.NET Framework / .NET Core 框架内部是不包含获取其他进程命令行参数的方法的,但是我们可以在任务管理器中看到,说明肯定存在这样的方法。
实际上方法是有的,不过这个方法是 Windows 上的专属方法。
对于 .NET Framework,需要引用程序集 System.Management
;对于 .NET Core 需要引用 Microsoft.Windows.Compatibility
这个针对 Windows 系统准备的兼容包(不过这个兼容包目前还是预览版本)。
然后,我们使用ManagementObjectSearcher
和ManagementBaseObject
来获取命令行参数。
为了简便,我将其封装成一个扩展方法,其中包括对于一些异常的简单处理。
使用此方法得到的命令行参数是一个字符串,而不是我们通常使用字符串时的字符串数组。如果你需要将其转换为字符串数组,可以使用我在另一篇博客中使用的方法:
.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# 获取一个正在运行的进程的命令行参数相关推荐
- 老李推荐:第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数...
老李推荐:第8章2节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-解析处理命令行参数 MonkeyRunnerStarter是MonkeyRunner启动时的入 ...
- 老李推荐:第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数 2...
我们这一节会先去分析下monkeyrunner是如何对参数进行处理的,我们跳转到MonkeyRunnerOptions这个类里面的processOptions这个方法: 93 public sta ...
- 隐藏进程命令行参数,例如输入密码等高危操作
目录 前言 复写argv参数 获取标准输入 总结 前言 启动程序很多时候用命令行参数可以很方便,做到简化一些配置,但是输入用户名密码等操作,如果通过进程查看工具直接看到密码就太不安全了. 因此很有必要 ...
- jcmd 命令_jcmd:一个可以全部统治的JDK命令行工具
jcmd 命令 我在过去的几篇文章中都引用了方便的JDK工具jcmd ,但是像我以前对jps所做的那样,只专注于它的实用性 . jcmd工具是随Oracle Java 7引入的,通过使用它来识别Jav ...
- jcmd:一个可以全部统治的JDK命令行工具
我在过去的几篇文章中都引用了方便的JDK工具jcmd ,但是像我以前对jps所做的那样,仅专注于其实用性 . jcmd工具是随Oracle Java 7引入的,在通过使用Java标识Java进程的ID ...
- 【Linux】孤儿进程 | 环境变量 | 命令行参数 | 进程优先级
文章目录 1. 孤儿进程 2. 环境变量 1. PATH环境变量 证明ls是系统指令 修改自己写的可执行程序对应路径 2. env--查看系统环境变量 3. 获取环境变量 envp environ g ...
- Erlang-编译、运行和命令行参数(转自-“Quick Win -- 五多”)
1. erlang:halt()可以即刻停止系统运行. 2. q()命令可以完成文件和数据库的一些处理后再退出.它是init:stop()的一个shell别名 3. erlang可以动态加载代码,正在 ...
- Linux进程-命令行参数和环境列表
命令行参数 在C中,main函数有很多的变种,比如 main(), int main(), int main(int argc, char *argv[]), int main(int argc, c ...
- 第四章 进程(3)进程的命令行环境变量
2.进程的命令行 创建一个新进程时,要传递一个命令行(几乎永远不会为空)用于创建新进程的可执行文件的名字时命令行上的第一个标记. A: 当 C运行期的启动代码开始运行的时候,要检索进程的命令行,跳过可 ...
最新文章
- 解决goldengate复制进程应用缓慢一例
- 记录一次生产发布事件——(简单的非空验证也能引发大问题)
- 点击button 验证倒计时
- nginx基础概念(100%)之lingering_close
- 飞龙的程序员书单 – Linux
- 屏蔽系统的故障定位案例
- JAVA_JDK下载与安装教程
- samba服务设置与访问共享文件夹
- 微信网页/微信小程序内实现长按识别二维码
- 如何用python画帆船_简单几步,100行代码用Python画一个蝙蝠侠的logo
- IDEA控制台为什么不打印日志
- WEB编程开发常用的代码 选择自 AppleBBS 的 Blog
- (翻译)用户难以阅读全大写文本的原因
- 华为荣耀8电信卡显示无服务器,华为荣耀手机实现双电信卡双待双通,5步告诉你真相...
- oracle nbu异机恢复,通过NBU进行Oracle异机恢复的实验操作步骤
- Nexus基本配置与使用
- 【EFI系统分区】关于EFI系统分区的说明
- t4 tesla 驱动程序_KVM直通Tesla T4 GPU安装windows虚拟机出现PCIE报错指向GPU
- qsv的像素格式转换
- 我所理解的开源软件供应链安全