Is there a way to set the environment path programmatically in C++ on Windows?(有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?)
问题描述
有没有办法以编程方式(C++)设置全局windows路径环境变量?
据我所知,putenv 只为当前应用程序设置它.
直接在注册表中更改 (HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment) 也是一个选项,但如果有的话我更喜欢 API 方法?
Is there a way to set the global windows path environment variable programmatically (C++)?
As far as I can see, putenv sets it only for the current application.
Changing directly in the registry (HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment) is also an option though I would prefer API methods if there are?
推荐答案
MSDN 说:
调用 SetEnvironmentVariable 没有对系统环境的影响变量.以编程方式添加或修改系统环境变量,将它们添加到HKEY_LOCAL_MACHINESystemCurrentControlSetControlSessionManagerEnvironment 注册表项,然后广播 WM_SETTINGCHANGE 消息将 lParam 设置为字符串环境". 这允许应用程序,如外壳,获取您的更新.请注意,环境变量的值此键中列出的限制为 1024字符.
Calling SetEnvironmentVariable has no effect on the system environment variables. To programmatically add or modify system environment variables, add them to the HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment registry key, then broadcast a WM_SETTINGCHANGE message with lParam set to the string "Environment". This allows applications, such as the shell, to pick up your updates. Note that the values of the environment variables listed in this key are limited to 1024 characters.
这篇关于有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?
基础教程推荐
- 为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如 2022-09-16
- 为什么 RegOpenKeyEx() 在 Vista 64 位上返回错误代码 2021-01-01
- 为什么派生模板类不能访问基模板类的标识符? 2021-01-01
- 非静态 const 成员,不能使用默认赋值运算符 2022-10-09
- 我应该对 C++ 中的成员变量和函数参数使用相同的名称吗? 2021-01-01
- CString 到 char* 2021-01-01
- 初始化列表*参数*评估顺序 2021-01-01
- GDB 显示调用堆栈上函数地址的当前编译二进制文 2022-09-05
- 通过引用传递 C++ 迭代器有什么问题? 2022-01-01
- 如果我为无符号变量分配负值会发生什么? 2022-01-01
