【发布时间】:2012-02-07 12:22:28
【问题描述】:
我正在使用 C++ 编写一个利用自定义系统范围环境变量的程序。该变量由 msi 安装程序设置。后来我的程序使用 GetEnvironmentVariable() API 读取它。
问题在于,似乎需要重新启动系统才能让我的自定义环境变量在我的程序中可见,而我不想为此重新启动系统。
似乎奇怪的是,如果(不重新启动)我右键单击我的电脑,然后进入属性 -> 高级并单击“环境变量”,我的自定义环境变量在该列表中,但由于某种原因 GetEnvironmentVariable () 仍然没有看到它。
那么有没有其他我可以使用的 API 可以在不重新启动系统的情况下工作? (因为系统属性可以清楚地看到它。)
【问题讨论】:
-
您通常不需要重新启动,但是在进程启动时会复制环境,因此您肯定需要重新启动程序才能看到新的环境变量。请注意,在某些情况下,您需要重新启动启动您的程序(例如,通过持久命令提示符启动进程时)。您的计划是如何开始的?
-
@Jesse:环境变量由外部程序(在这种情况下为安装程序)设置。
-
@AndréCaron:谢谢,我会删除我的评论。
标签: c++ winapi environment-variables