一个wxWidgets判断注册表键值的函数

项目中需要用wxWidgets对注册表的键值进行读取.
使用wxRegKey的QueryValue方法读取相应键值时,例如以下代码。
如果regdelay键值不存在会抛出一个异常。那么对用户来说体验很不好.
pRegKey->QueryValue(wxT("regdelay"), keyvaluestr);
 
查了下手册,开始发现有一个函数用于返回该键值是否存在的布尔值,不过在实际使用中发觉很不稳定,经常得不到正确的返回值。

bool HasSubKey(const wxChar *szKey) const
不知道是自己使用的问题还是wxWidgets库本身的bug。进度催得紧,于是仔细研究了wxRegKey文档,写了一个函数,专门用于检测某键值是否存在,经测试表现还算稳定。
 
代码如下:
bool VerifyEnCrptyFunction::RegKeyHasValue(wxString regkey,wxString key)
{
        wxRegKey pRegKey (pregkey);
        if (pRegKey->Exists())
        {
                if (pRegKey->Open())
                {
                        if ( pRegKey->HasValue(key))
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }
        }
        return false;
}
 
 
具体使用方法:
        //用户保存键值
        wxString    keyvaluestr;
        //构造一个注册表项路径
        wxString    regkey=wxT("HKEY_LOCAL_MACHINE//Software//iLcd");
        if (RegKeyHasValue(regkey,wxT("regdelay")))
        {
                //有regdelay查询该键值下的内容
                pRegKey->QueryValue(wxT("regdelay"), keyvaluestr);
        }
        else
        {
                //没有regdelay返回no value
                keyvaluestr=wxT("no value");
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值