一个wxWidgets判断注册表键值的函数
生活随笔
收集整理的這篇文章主要介紹了
一个wxWidgets判断注册表键值的函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
項(xiàng)目中需要用wxWidgets對(duì)注冊(cè)表的鍵值進(jìn)行讀取. 使用wxRegKey的QueryValue方法讀取相應(yīng)鍵值時(shí),例如以下代碼。 如果regdelay鍵值不存在會(huì)拋出一個(gè)異常。那么對(duì)用戶來(lái)說(shuō)體驗(yàn)很不好. pRegKey->QueryValue(wxT("regdelay"), keyvaluestr); 查了下手冊(cè),開始發(fā)現(xiàn)有一個(gè)函數(shù)用于返回該鍵值是否存在的布爾值,不過在實(shí)際使用中發(fā)覺很不穩(wěn)定,經(jīng)常得不到正確的返回值。 bool HasSubKey(const wxChar *szKey) const
不知道是自己使用的問題還是wxWidgets庫(kù)本身的bug。進(jìn)度催得緊,于是仔細(xì)研究了wxRegKey文檔,寫了一個(gè)函數(shù),專門用于檢測(cè)某鍵值是否存在,經(jīng)測(cè)試表現(xiàn)還算穩(wěn)定。 代碼如下: 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;
????????//構(gòu)造一個(gè)注冊(cè)表項(xiàng)路徑
????????wxString????regkey=wxT("HKEY_LOCAL_MACHINE\\Software\\iLcd");
????????if (RegKeyHasValue(regkey,wxT("regdelay")))
????????{
????????????????//有regdelay查詢?cè)撴I值下的內(nèi)容
????????????????pRegKey->QueryValue(wxT("regdelay"), keyvaluestr);
????????}
????????else
????????{
????????????????//沒有regdelay返回no value
????????????????keyvaluestr=wxT("no value");
????????}
不知道是自己使用的問題還是wxWidgets庫(kù)本身的bug。進(jìn)度催得緊,于是仔細(xì)研究了wxRegKey文檔,寫了一個(gè)函數(shù),專門用于檢測(cè)某鍵值是否存在,經(jīng)測(cè)試表現(xiàn)還算穩(wěn)定。 代碼如下: 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;
????????//構(gòu)造一個(gè)注冊(cè)表項(xiàng)路徑
????????wxString????regkey=wxT("HKEY_LOCAL_MACHINE\\Software\\iLcd");
????????if (RegKeyHasValue(regkey,wxT("regdelay")))
????????{
????????????????//有regdelay查詢?cè)撴I值下的內(nèi)容
????????????????pRegKey->QueryValue(wxT("regdelay"), keyvaluestr);
????????}
????????else
????????{
????????????????//沒有regdelay返回no value
????????????????keyvaluestr=wxT("no value");
????????}
轉(zhuǎn)載于:https://blog.51cto.com/axiii/126673
總結(jié)
以上是生活随笔為你收集整理的一个wxWidgets判断注册表键值的函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。