我有一个C++程序调用GetEnvironmentVariable()
来获取'Path'变量信息。如果我正在运行我的程序,同时,我通过“我的计算机 - >属性 - >环境变量”更改我的'路径'变量?...是否完全不可能从GetEnvironmentVariable()
检索更新的'路径'变量重新启动我的程序(和Visual Studio)。当我的电脑发生更改时更新环境变量
在this posting,Anders K提到:
“确保你重新启动应用程序,然后才能读取环境变量,如果你有一个控制台窗口打开并更改我的电脑环境变量同样的情况。这些在任何现有的控制台窗口中都没有记录,您需要重新启动它们以获取新环境变量的副本。“
这是否意味着有100%无法检索更新的“路径”变量?我不确定我是否浪费了我的时间。
此外,我试图像this,但没有成功。
谢谢。
只是一个想法,而不是一个解决方案......但你可以尝试从你的程序中启动另一个(短命的)进程并使用它来读取环境变量 – andypaxo
你应该看看CreateEnvironmentBlock(http:// msdn .microsoft.com/EN-US /库/窗/台式机/ bb762270%28V = vs.85%29.aspx)。我之前没有用过它,所以发布评论而不是答案,但看起来应该适合你。 –
或者,为了回显@andypaxo,shell执行“cmd:ECHO%PATH%”,但一定不要将cmd进程创建为现有进程的子进程,否则它只会继承您的环境块。 –