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