繁体   English   中英

获取不同进程的环境变量

[英]Get environment variables of a different process

我正在使用 Service Fabric,我想创建一个选定进程的环境变量的观察者。

我想到了这个方法:

var processes = Process.GetProcessesByName(processName);
foreach (var process in processes){
    var environmentVariables = process.StartInfo.EnvironmentVariables;
    foreach (DictionaryEntry envVar in environmentVariables){
        // envVar.Key, enVar.Value ...
    }
}

但是我不能使用 StartInfo 因为这里没有启动进程。 有没有其他方法可以检索进程的环境变量(键/值)(由 GetProcessByName/ID 检索)?

错误:

System.InvalidOperationException: Process was not started by this object, so requested information cannot be determined.

在发布的链接中,我找到了 Oleksiy Gapotchenko 的博客。 他开发了一个即用型 nuget package。

读取进程的环境变量。 该功能是通过在操作系统级别读取进程环境块 (PEB) 来实现的。

blog.gapotchenko/reading-environment-variables

github/Gapotchenko.FX.Diagnostics.Process

nuget/packages/Gapotchenko.FX.Diagnostics.Process

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM