记录一下qt写入注册表与环境变量

 1.注册表操作

qt写入注册表比较简单,直接用自带的QSettings

QString baseUrl("HKEY_CURRENT_USER\\....");    // 要添加的目录
QSettings settingClasses(baseUrl, QSettings::NativeFormat);
setting.setValue("UserName", "Test");   //键值对形式添加

 注册表值读取

setting.value("key").toString(); //直接获取对应键里面保存的值

2.环境变量操作

qt操作环境变量有点麻烦,这里我踩了一个坑,卡了好久...

刚开始在网上搜,大部分都是qputenv和qgetenv,使用运行程序后确实获取修改后的环境变量有变化,但是关闭程序后查看Windows环境变量没有一点改变.一开始我以为是哪里操作出了问题,找了好久发现是该修改只在程序运行时生效(qt果然是有操作的).可能和类QProcessEnvironment的静态方法systemEnvironment()的作用差不多(当时也试了这个,没啥用).

最后发现原来要想修改环境变量只能通过修改注册表(可能还有其他方法吧,但是没找到),又回到了最初的起点

注册表操作环境变量这里还有个小细节,HKEY_CURRENT_USER下的数据可以直接修改,HKEY_LOCAL_MACHINE下面的修改需要权限,只有在管理员权限下才可以操作(当时写入系统环境变量一直写不进去,一度又以为我哪里写错了...).

写入之前要获取当前的环境变量,然后与要添加的合并,然后整体添加进去,要不然直接添加就会覆盖原来的环境变量.

注意:修改环境变量比较危险,最好提前备份一下

QSettings setting("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", QSettings::NativeFormat);  //写入系统环境变量
QSettings setting("HKEY_CURRENT_USER\\Environment", QSettings::NativeFormat);//写入用户环境变量

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值