如何完全清除所有的用户环境变量在Windows c++
How to completely clear all User Environment variables in Windows C++
我一直在尽我所能将一个公司的产品移植到一个与Windows兼容的版本中。事情不太顺利。我有两个不同的开发分支,有两个不同的问题。在这个问题中,我必须移植本质上是Unix clearenv()
函数的包装器,它完全从表中清除所有用户环境变量。可能出于安全原因,我无法在Windows上找到与clearenv()
等效的工具,我找到/提出的一个解决方案是,删除进程中的所有环境变量,包括系统变量。我想要一个解决方案,将摆脱所有的用户环境变量,但不触及系统的。
我知道这可能是一件愚蠢的事情,但它在代码中,所以我必须尝试移植它。
另外,如果有帮助的话,我在MinGW
来自CreateEnvironmentBlock的文档:
hToken [in, optional][…如果该参数为NULL,则返回的环境块中只包含系统变量。
检查进程环境块并将其更改为匹配此函数返回的"system only"块仍然有点混乱,但至少您将获得必要的信息。
您可以编写一个简单的函数来删除当前的环境变量。
首先,您可以使用CreateEnvironmentBlock函数来检索包含整个键数组的块。
其次,使用SetEnvironmentVariable函数循环所有值为NULL的键,这将删除环境值。
相关文章:
- 枚举环境变量的惯用C++14/C++17方法
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 定义C++新的环境变量并在 bat 文件中使用它
- docker 构建失败:无法设置环境变量
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- C++环境变量
- 在编译时为运行时设置环境变量
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 访问 PlatformIO 中的外部环境变量
- WSL 看不到环境变量
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 注册 TBB 的环境变量
- CMake 看不到SDL2_PATH环境变量 (Windows)
- C++ - 我需要一个宏或环境变量来检测我何时在 Windows 上运行 bazel
- 如何在Qt5中使用Windows环境变量
- 如何在安装MinGW (Windows 32位)时设置环境变量PATH
- 如何在MSYS上访问windows环境变量
- 在Windows 7下运行MinGW gcc编译器,不设置环境变量
- 如何完全清除所有的用户环境变量在Windows c++
- Win32释放环境变量导致Windows断点