【发布时间】: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.
【问题讨论】:
-
stackoverflow.com/questions/37906715/… - Raymond Chen 说它不能可靠地完成,stackoverflow.com/questions/38660262/… 链接到一个博客,其中包含一个黑客,它会刮取另一个进程的内存以获取变量,这可能对你有用,或者不得。鉴于 Raymond 对 Windows 的了解,我不会抱太大希望
-
发布的代码有什么错误?你看过this question和this question的答案了吗?
-
我用错误消息编辑了我的帖子。
标签: c# process environment-variables azure-service-fabric processstartinfo