在Windows中,有没有办法来检查另一个进程的环境变量的存在? 只需要检查存在,不一定获得价值。
我需要从代码做到这一点。
在Windows中,有没有办法来检查另一个进程的环境变量的存在? 只需要检查存在,不一定获得价值。
我需要从代码做到这一点。
如果您知道环境存储虚拟地址在哪,你可以使用OpenProcess
和ReadProcessMemory
读出环境的其他程序。 然而,要找到虚拟地址,你需要捅在周围线程信息块进程的线程之一。
为了得到这一点,你需要调用GetThreadContext()
调用后SuspendThread()
但为了调用这些,你需要一个线程处理,您可以通过调用get CreateToolhelp32Snapshot
与TH32CS_SNAPTHREAD
标志来创建进程的快照, Thread32First
得到第一个线程的线程ID的过程中,和OpenThread
得到一个处理的线程。
使用工具:
您可以使用进程资源管理器 。
右键单击程序,去属性...并且有一个环境选项卡,其中列出了该进程的环境变量。
随着代码:
似乎没有成为一个Win32 API调用直接做到这一点,但显然你摆弄的结果GetProcessStrings
获得访问这些信息。 这CodeProject上的文章有一些代码,让你开始。