• 2779阅读
  • 3回复

[提问]qt如何添加新的系统环境变量 [复制链接]

上一主题 下一主题
离线lgs_shandong
 

只看楼主 倒序阅读 楼主  发表于: 2017-09-22
QProcess process;
QProcessEnvironment *proEnv = new QProcessEnvironment();
    proEnv->insert(strRegKey, strEnvi);
    process.setProcessEnvironment(*proEnv);
    delete proEnv;
这样只对本进程有效,程序结束就没有了,qt如何实现在系统环境变量中添加新的选项?
离线qazaq408

只看该作者 1楼 发表于: 2017-09-22
什么系统。。。。linuix/unix系统的话在进程内修改环境变量,只在该进程内有效,这没毛病,如果要改用户的环境变量,直接修改.pro文件
win俺就不知道了
离线lgs_shandong

只看该作者 2楼 发表于: 2017-09-22
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这个位置添加新的选项。
离线lgs_shandong

只看该作者 3楼 发表于: 2017-09-23
算是解决,通过qsettings,将内容放到HKEY_CURRENT_USER\\Environment下,即当前用户的环境变量中
快速回复
限100 字节
 
上一个 下一个