我有一个提升的进程,我正在尝试使用C#从另一个进程中提取环境变量。我知道通过使用Process Explorer,该变量存在。
我可以得到如下的流程环境变量:
Process process = Process.GetProcessesByName("someprocess").First();
string value = process.StartInfo.EnvironmentVariables["var_name"];
但是StartInfo只返回传递给process.Start()的过程环境变量的子集。
如何获取在流程运行期间设置了蜜蜂的环境变量?
它没有很好的文档记录,但是ProcessStartInfo.EnvironmentVariables
没有返回特定过程的环境。
如果您查看参考资料,您会发现在后台调用了该GetEnvironmentStrings
函数。该函数返回“指向包含调用过程的环境变量(系统和用户环境变量)的内存块的指针”。
访问另一个进程的环境块比较棘手。Oleksiy Gapotchenko写了一篇很棒的博客文章,还提供了示例解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句