QT与注册表

     QT4.4.3下settings读写文件时,无法读取中文,也无法写入中文,真是弱爆了. 没想到处理注册表,功能到是很强大. 

 一.读写注册表

// 遍历[HKEY_CLASSES_ROOT\\.dsw]下所有的键值
QSettings *settings=new QSettings("HKEY_CLASSES_ROOT\\.dsw",QSettings::NativeFormat);
foreach(QString str,settings->childKeys())
{
	 QString value=settings->value(str).toString();
	 qDebug("%s --- %s",str.toLocal8Bit().data(),value.toLocal8Bit().data());
}

    通过遍历发现,QT对于.dsw默认值的处理,其key指定为".", 而在C#里面,默认值key为一空字符串,获取 rk.GetValue("").ToString()

 

二. 添加子项

QSettings settings("HKEY_CLASSES_ROOT\\.dsp",QSettings::NativeFormat);
settings.setValue("hello","world"); // 在.dsp项上添加key为hello,值为world的项
settings.setValue("hello/.","world"); // 在.dsp下添加一个hello的子节点,并设置其默认值为world

 

 

三. 文件添加鼠标右键

     对于一些特定的文件,我们可以直接将工具添加至鼠标右键,这样可以通过右键选择该工具打开即可,方便管理该文件.可以通过修改注册表来完成,下面以.dsp文件为例,添加新菜单项

 

    1. VC6下.dsp默认值为dspfile,如果安装vs10之类的版本,会修改dsp在注册表中的默认设置

    [HKEY_CLASSES_ROOT\.dsp],指定默认值dspfile,然后查找dspfile的项

    [HKEY_CLASSES_ROOT\dspfile\shell],建立与Open With MSDEV同级的项,设置 [HKEY_CLASSES_ROOT\dspfile\shell\Build pro file\command]的值为: "c:\tool\dsptopro.exe" "%1"

 

    注意,文件路径一定要用\,不能指定/,否则出错,%1表示程序需要的命令参数,即当前dsp文件路径名

    效果:

    右键效果

   

    

   

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值