【问题标题】:Get environment variables of a different process获取不同进程的环境变量
【发布时间】:2020-10-29 19:14:00
【问题描述】:

我正在使用 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.

【问题讨论】:

标签: c# process environment-variables azure-service-fabric processstartinfo


【解决方案1】:

在发布的链接中,我找到了 Oleksiy Gapotchenko 的博客。他开发了一个现成的 nuget 包。

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

blog.gapotchenko/reading-environment-variables

github/Gapotchenko.FX.Diagnostics.Process

nuget/packages/Gapotchenko.FX.Diagnostics.Process

【讨论】:

    猜你喜欢
    • 2020-10-31
    • 1970-01-01
    • 2011-06-20
    • 2015-12-15
    • 2020-02-04
    • 2021-12-07
    • 2020-12-22
    • 1970-01-01
    • 2016-10-20
    相关资源
    最近更新 更多