程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 一個wxWidgets判斷注冊表鍵值的函數

一個wxWidgets判斷注冊表鍵值的函數

編輯:關於C語言

項目中需要用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");
        }

本文出自 “九黎部落” 博客,請務必保留此出處http://axiii.blog.51cto.com/396236/126673

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved