有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?

2023-10-18C/C++开发问题
0

本文介绍了有没有办法在 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++ 中以编程方式设置环境路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

无法访问 C++ std::set 中对象的非常量成员函数
Unable to access non-const member functions of objects in C++ std::set(无法访问 C++ std::set 中对象的非常量成员函数)...
2024-08-14 C/C++开发问题
17

从 lambda 构造 std::function 参数
Constructing std::function argument from lambda(从 lambda 构造 std::function 参数)...
2024-08-14 C/C++开发问题
25

STL BigInt 类实现
STL BigInt class implementation(STL BigInt 类实现)...
2024-08-14 C/C++开发问题
3

使用 std::atomic 和 std::condition_variable 同步不可靠
Sync is unreliable using std::atomic and std::condition_variable(使用 std::atomic 和 std::condition_variable 同步不可靠)...
2024-08-14 C/C++开发问题
17

在 STL 中将列表元素移动到末尾
Move list element to the end in STL(在 STL 中将列表元素移动到末尾)...
2024-08-14 C/C++开发问题
9

为什么禁止对存储在 STL 容器中的类重载 operator&()?
Why is overloading operatoramp;() prohibited for classes stored in STL containers?(为什么禁止对存储在 STL 容器中的类重载 operatoramp;()?)...
2024-08-14 C/C++开发问题
6