如何使用QT设置PATH变量?

Rik*_*ika 4 c++ qt4 environment-variables

如何使用QT 4.8获取和设置PATH变量?我知道我可以使用STL中的getenv获取PATH变量值,但不知道如何使用STL或任何基于Qt的方法设置它?

如果QT有它的功能,我想知道并使用它,而不是去使用Windows API.

S.M*_*avi 9

感谢我的朋友Toosi先生,您可以为当前流程设置环境变量并使用qputenv("key", "value")qgetenv("key").
这也适用于Qt 5.5.0 :)


exr*_*ook 3

您可以使用 stdlib.h 中的 setenv 将 PATH 设置为新值。

setenv("PATH","/new/path/value",1)
Run Code Online (Sandbox Code Playgroud)

但是,这是标准标头的非标准扩展,并且只会影响调用进程生成的子进程。为了更改生成的所有新进程的环境变量,必须使用特定于系统的方法。对于 Windows,可以在以下位置更改 PATH 变量

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
Run Code Online (Sandbox Code Playgroud)

注册表项。这将确保为所有新进程设置 PATH,并将在重新启动时应用。