亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

簡單的讀寫注冊表實例

2024-06-28 13:05:14
字體:
來源:轉載
供稿:網友

一、說明:
    注冊表是Windows重要組成部分,注冊表記錄了大量有關電腦軟硬件的信息。注冊表中的值通過其名稱標識。值名稱由與鍵名相同的字符組成。值本身可以是字符串、二進制數據或者是32位無符號值。在這里我們主要運用以下技巧:

(一)、預定義的注冊表鍵。注冊表包含了幾個預定義鍵:

   1. HKEY_LOCAL_MACHINE 包含描述計算機及其配置的條目。其中包括關于處理器、系統主板、內存和已安裝的軟件和硬件的信息。  
   2. HKEY_CLASSES_ROOT 是與文檔類型和 OLE/COM 相關的信息的支持鍵。這個鍵是 HKEY_LOCAL_MACHINE的從屬鍵。  
   3. HKEY_USERS 用作默認用戶首選設置,也作為單個用戶的首選設置。  
   4. HKEY_CLASSES_USER 是用于當前(登錄)用戶的相關信息。  
   5. HKEY_CURRENT_CONFIG 包含了當前系統配置的信息。  
   6. 還有一個,一般不會出現,只有配置的局域網后才會有。  

(二)、CRegKey 類及主要使用和函數說明

   1. 所需要頭文件:atlbase.h  
   2. 常用函數

      ☆ 打開一個鍵的函數:RegOpenKeyEx
         函數定義:LONG RegOpenKeyEx(HKEY hKey,//已經打開的鍵的句柄,或者直接是上述幾個根鍵
                                     LPCTSTR lpSubKey,//要打開的子鍵名字的地址
                                     DWord ulOptions,//保留值,必須為0
                                     REGSAM samDesired,//打開方式,如讀還是寫
                                     PHKEY phkResult//返回的打開的子鍵的句柄
                                    );

      ☆ 查詢某一個鍵值:RegQueryValueEx
         函數定義:LONG RegQueryValueEx(HKEY hKey,//要查詢的鍵的句柄
                                        LPCTSTR lpValueName,//要查詢的鍵值的名稱
                                        LPDWORD lPReserved,//保留值
                                        LPDWORD lpType,//要查詢的數據的類型
                                        LPBYTE lpData,//要返回的查詢的數據
                                        LPDWORD lpcbData//預置的數據的長度
                                       );

      ☆ 設置一個鍵值RegSetValueEx
         函數定義:LONG RegSetValueEx(HKEY hKey,//要設置的鍵的句柄
                                      LPCTSTR lpValueName,//要訪問的鍵值的名稱
                                      LPDWORD lpReserved,//保留值
                                      DWORD dwType,//要設置的數據的類型
                                      const BYTE *lpData,//要設置的健值
                                      DWORD cbData//數據的長度
                                     );

       

二、實例:

   1. 通過AppWizard創建基于對話框的程序 Regedit  
   2. 設置兩個命令按鈕,名為“查詢”(ID_QUERY)和“修改”(ID_CHANGE),用來查詢和修改注冊表中用戶姓名和公司名稱。注:信息位置9x系列:/HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrntVersion NT系列:/HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrntVersion 鍵值:RegisteredOwnertkg和RegisteredOrganization分別表示用戶名和公司名  
   3. 設置兩個編輯框,用于顯示和修改信息。定義兩個CString變量m_strOwner,m_Company。  
   4. “查詢”按鈕代碼如下:

      void CRegeditDlg::OnQuery()
      {
              UpdateData(true);
       HKEY hKEY;//定義有關的hKEY,在查詢結束時要關閉

       //打開與路徑 data_Set相關的hKEY
       LPCTSTR data_Set="Software//Microsoft//Windows NT//CurrentVersion//";
       //訪問注冊表,hKEY則保存此函數所打開的鍵的句柄
       long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
       if(ret0!=ERROR_SUCCESS)//如果無法打開hKEY,則中止程序的執行
       {
        AfxMessageBox("錯誤:無法打開有關的hKEY");
        return;
       }

       //查詢有關的數據
       LPBYTE owner_Get=new BYTE[80];//定義用戶姓名 owner_Get
       DWORD type_1=REG_SZ;//定義數據類型
       DWORD cbData_1=80;//定義數據長度

       long ret1=::RegQueryValueEx(hKEY,"RegisteredOwner",NULL,&type_1,owner_Get,&cbData_1);
       if(ret1!=ERROR_SUCCESS)
       {
        AfxMessageBox("錯誤:無法查詢有關的注冊表信息");
        return;
       }

       //查詢公司名
       LPBYTE company_Get=new BYTE[80];//定義公司名稱 company_Get
       DWORD type_2=REG_SZ;//定義數據類型
       DWORD cbData_2=80;//定義數據長度

       long ret2=::RegQueryValueEx(hKEY,"RegisteredOrganization",NULL,&type_2,company_Get,&cbData_2);
       if(ret2!=ERROR_SUCCESS)
       {
        AfxMessageBox("錯誤:無法查詢有關的注冊表信息");
        return;
       }

       //顯示信息
       m_strOwner=CString(owner_Get);
       m_strCompany=CString(company_Get);
       delete[] owner_Get;
       delete[] company_Get;

       //程序結束,關閉打開的hKEY
       ::RegCloseKey(hKEY);
       UpdateData(false);
      }

   5. “設置”按鈕代碼如下:

      void CRegeditDlg::OnModify()
      {
       UpdateData(true);

       HKEY hKEY;//定義有關的hKEY,在查詢結束時要關閉

       //打開與路徑 data_Set相關的hKEY
       LPCTSTR data_Set="Software//Microsoft//Windows NT//CurrentVersion//";
       //訪問注冊表,hKEY則保存此函數所打開的鍵的句柄
       long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
       if(ret0!=ERROR_SUCCESS)//如果無法打開hKEY,則中止程序的執行
       {
        AfxMessageBox("錯誤:無法打開有關的hKEY");
        return;
       }

       //設置有關的數據
              //CString_To_LPBYTE,請參考下面的函數
       LPBYTE owner_Set=CString_To_LPBYTE(m_strOwner);//定義用戶姓名 owner_Set
       DWORD type_1=REG_SZ;//定義數據類型
       DWORD cbData_1=m_strOwner.GetLength()+1;//定義數據長度

       long ret1=::RegSetValueEx(hKEY,"RegisteredOwner",NULL,type_1,owner_Set,cbData_1);
       if(ret1!=ERROR_SUCCESS)
       {
        AfxMessageBox("錯誤:無法設置有關的注冊表信息");
        return;
       }

       //查詢公司名
       LPBYTE company_Set=CString_To_LPBYTE(m_strCompany);//定義公司名稱 company_Set
       DWORD type_2=REG_SZ;//定義數據類型
       DWORD cbData_2=m_strCompany.GetLength()+1;//定義數據長度

       long ret2=::RegSetValueEx(hKEY,"RegisteredOrganization",NULL,type_2,company_Set,cbData_2);
       if(ret2!=ERROR_SUCCESS)
       {
        AfxMessageBox("錯誤:無法設置有關的注冊表信息");
        return;
       }
       else
       {
        AfxMessageBox("注冊表修改完成");
       }
       //程序結束,關閉打開的hKEY
       ::RegCloseKey(hKEY);
       UpdateData(false);
      }

   6. 參考函數  

      LPBYTE CString_To_LPBYTE(CString str)
      {
       LPBYTE lpb=new BYTE[str.GetLength()+1];
       for(int i=0;i<str.GetLength();i++)
        lpb[i]=str[i];
       lpb[str.GetLength()]=0;
       return lpb;
      } 

三、注意:以上代碼僅能在Windows NT/2000/XP中通過,Windows 9X/Me中請將注冊表路徑中的Windows NT改為Windows即可實現。 本程序源代碼在Windows 2000+VC6.0中通過測試。 本程序源代碼示例文件僅能在 Windows NT/2000/XP 下使用,Windows 9X/Me 中請修改后使用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美xxxx14xxxxx性爽| 精品magnet| 日韩精品亚洲精品| 国产成人鲁鲁免费视频a| 国产91在线视频| 国产精品爱啪在线线免费观看| 欧美超级免费视 在线| 97免费视频在线| 欧美剧在线观看| 欧洲一区二区视频| 亚洲电影免费观看高清完整版在线观看| 国产一区二区三区精品久久久| 欧美电影电视剧在线观看| 国产成人精品最新| 最近2019年手机中文字幕| 国产欧美一区二区三区在线| 国产成+人+综合+亚洲欧洲| 综合欧美国产视频二区| 欧美精品久久久久久久久| 欧美精品电影免费在线观看| 亚洲福利在线观看| 久热精品在线视频| 2019日本中文字幕| 久久久久久久一区二区三区| 国产极品jizzhd欧美| 中文字幕久热精品视频在线| 一区二区欧美在线| 欧美激情a∨在线视频播放| 国产日韩av在线| 欧美日韩免费区域视频在线观看| 色偷偷888欧美精品久久久| 亚洲色图25p| 中文在线资源观看视频网站免费不卡| 国产在线视频91| 国产精品久久久久不卡| 欧美精品免费在线观看| 久久偷看各类女兵18女厕嘘嘘| 久久免费视频观看| 日韩中文字幕在线观看| 久久久免费在线观看| 中文字幕最新精品| 国产一区二区三区18| 欧美猛交ⅹxxx乱大交视频| 日本三级韩国三级久久| 国产精品一区二区性色av| 成人黄色av免费在线观看| 国产精品mp4| 狠狠色噜噜狠狠狠狠97| 国产综合久久久久久| 亚洲人成亚洲人成在线观看| 国产一区二区三区在线播放免费观看| 国产精品一区二区三区久久久| 菠萝蜜影院一区二区免费| 国产suv精品一区二区三区88区| 国产91精品黑色丝袜高跟鞋| 国产精品丝袜一区二区三区| 亚洲一区二区三区视频播放| 亚洲欧洲国产伦综合| 亚洲自拍小视频| 中文字幕久热精品视频在线| 日韩电影在线观看中文字幕| 成人av.网址在线网站| 成人午夜黄色影院| 中文字幕亚洲图片| 国产精品第一页在线| 欧美激情亚洲精品| 国产香蕉97碰碰久久人人| 国内精品一区二区三区四区| 国产99视频在线观看| 97在线观看免费高清| 深夜福利国产精品| 国产激情999| 久久99热这里只有精品国产| 久久亚洲精品毛片| 亚洲欧美在线磁力| 2018日韩中文字幕| 久久亚洲综合国产精品99麻豆精品福利| 国产精品人人做人人爽| 欧美精品在线免费| 神马久久桃色视频| 亚洲女人被黑人巨大进入| 成人免费网站在线看| 亚洲淫片在线视频| 亚洲娇小xxxx欧美娇小| 成人黄色在线免费| 91老司机在线| 成人情趣片在线观看免费| 永久免费看mv网站入口亚洲| 欧美一级片一区| 国产精品亚洲精品| 深夜福利日韩在线看| 亚洲激情在线视频| 亚洲国产精品99| 国产精品第二页| 亚洲性69xxxbbb| 久久精品国产电影| 亚洲sss综合天堂久久| 欧美性高潮在线| 国产精品久久久久久一区二区| 91久久国产综合久久91精品网站| 亚洲天堂av在线播放| 欧美激情伊人电影| 亚洲曰本av电影| 欧美与欧洲交xxxx免费观看| 国产精品久久久久久久久男| 浅井舞香一区二区| 欧美在线观看网址综合| 91天堂在线观看| 精品网站999www| 中文字幕精品国产| 国产精品高潮视频| 亚洲午夜女主播在线直播| 久久av在线播放| 国产亚洲激情在线| 日韩在线视频免费观看高清中文| 亚洲欧美变态国产另类| 亚洲三级 欧美三级| 国产精品www网站| 国产精品欧美久久久| 91免费视频国产| 欧美日韩性生活视频| 国产一区二区三区三区在线观看| 欧美午夜电影在线| 午夜精品99久久免费| 国产精品久久久久久久久免费| 欧美激情手机在线视频| 欧美视频在线观看免费网址| 91久久在线观看| 欧美另类极品videosbestfree| 亚洲精品视频网上网址在线观看| 911国产网站尤物在线观看| 国产精品男人的天堂| 91精品国产91久久久久久不卡| 国产成人亚洲综合青青| 国产精品久久久久av免费| 亚洲精品少妇网址| 岛国精品视频在线播放| 国产亚洲一区二区精品| 欧美精品久久久久久久久久| 欧美激情视频在线观看| 欧美性猛交xxxx富婆| 国内精品视频一区| www.日韩不卡电影av| 亚洲va国产va天堂va久久| 久久精品电影网站| 97国产精品人人爽人人做| 欧美一级大片视频| 琪琪亚洲精品午夜在线| 成人综合网网址| 欧美久久精品一级黑人c片| 中文字幕免费国产精品| 亚洲人午夜精品免费| 奇门遁甲1982国语版免费观看高清| 欧美激情亚洲另类| 欧美亚洲另类制服自拍| 久久精品福利视频| 成人97在线观看视频| 久久精品电影网站| 免费91在线视频| 伊人久久久久久久久久久久久| 亚洲国产精品久久久久秋霞蜜臀| 国产精品一区专区欧美日韩| 欧美色xxxx| 亚洲开心激情网|