gpt4 book ai didi

c++ - 无需重启即可访问自定义环境变量(使用 C++)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:23 25 4
gpt4 key购买 nike

我正在使用 C++ 编写一个程序,该程序利用自定义系统范围的环境变量。该变量由 msi 安装程序设置。后来我的程序使用 GetEnvironmentVariable() API 读取它。

问题是似乎需要重新启动系统才能使我的自定义环境变量在我的程序中可见,我不想为此重新启动系统。

奇怪的是,如果(不重启)我右键单击“我的电脑”,然后进入“属性”->“高级”并单击“环境变量”,我的自定义环境变量就在该列表中,但出于某种原因 GetEnvironmentVariable () 还是没看到。

那么,是否有任何其他 API 可以让我在不重启系统的情况下使用? (因为系统属性可以清楚地看到它。)

最佳答案

如果您想在不重启系统的情况下执行此操作,您需要 broadcast it .类似

的东西
 SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM) "Environment", SMTO_ABORTIFHUNG,
5000, &dwReturnValue);

Explorer 正确处理此消息,因此在此广播后启动的程序将看到更改。

  1. 此外,从技术上讲,您不需要重新启动,一个简单的注销和登录就足够了
  2. 另一种选择是简单地 restart explorer

关于c++ - 无需重启即可访问自定义环境变量(使用 C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com