标题:qt如何添加新的系统环境变量
作者:lgs_shandong
日期:2017-09-22 09:59
内容:
QProcess process;QProcessEnvironment *proEnv = new QProcessEnvironment();proEnv->insert(strRegKey, strEnvi);process.setProcessEnvironment(*proEnv);delete proEnv;
这样只对本进程有效,程序结束就没有了,qt如何实现在系统环境变量中添加新的选项?
#1 [qazaq408 09-22 12:31]
什么系统。。。。linuix/unix系统的话在进程内修改环境变量,只在该进程内有效,这没毛病,如果要改用户的环境变量,直接修改.pro文件
win俺就不知道了
#2 [lgs_shandong 09-22 14:18]
win系统,想在程序中用代码修改系统环境变量,实现不了
QString str = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";
QSettings setTest(str, QSettings::NativeFormat);
QStringList strList = setTest.childGroups();
可以得到所有的环境变量,就是不能添加,是不是qt不提供这个功能,虽然可以修改注册表,但无法在注册表中的HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment这个位置添加新的选项。
#3 [lgs_shandong 09-23 14:42]
算是解决,通过qsettings,将内容放到HKEY_CURRENT_USER\\Environment下,即当前用户的环境变量中