青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 224  文章 - 41  trackbacks - 0
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

轉:http://blog.chinaunix.net/u2/67530/showart_602802.html


         一起學習注冊表的操作,API為我們提供了大約25個函數。他提供了對注冊表的讀取,寫入,刪除,以及打開注冊表及鍵值時所有函數,并且可以達到對注冊表的備份,連接和對遠端注冊表進行查看等等。注冊表對整個系統十分重要,你在進行操作時,一定要先考慮清楚。這些函數有:
               RegCloseKey RegConnectReGIStry RegCreateKey RegCreateKeyEx RegDeleteKey RegDeleteVale 
               RegEnumKey RegFlushKey RegGetKeySecurity(此函數,98不適用) RegLoadKey 
               RegNotifyChangeKeyValue(98不適用) RegOpenKey RegOpenKeyEx RegQueryInfoKey RegQueryValue
               RegQueryValueEx RegReplaceKey RegRestoreKey(98不適用) RegSaveKey RegSetKeySecurity(98不適用) RegSetValue RegSetValueEx RegUnLoadKey
我們對經常使用的幾個函數進行介紹。

1·RegClose()
    原形:LONG RegCloseKey(
    HKEY hKey // 釋放已經打開的注冊表句柄
    );
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:關閉指定的主冊表鍵,釋放句柄。當對一個或多個鍵或值操作完成以后,需要關閉其鍵來進行保存操作結果。關閉一個鍵后,句柄變為非法,以使其不可再次被使用。為系統重新使用而釋放句柄。
    例子
BOOL bRet = TRUE;
if( m_hKey == NULL )
return( FALSE );
bRet = ( ::RegCloseKey( m_hKey ) == ERROR_SUCCESS );
m_hKey = NULL;
return( bRet ); 

2·RegCreateKeyEx()和RegCreateKey()
原形:LONG RegCreateKeyEx(
HKEY hKey, // 主鍵名稱
LPCTSTR lpSubKey, // 子鍵名稱或路徑
DWORD Reserved, // 保留,為0
LPTSTR lpClass, // 沒弄懂,我設為空也差不多
DWORD dwOptions,
/* 對你建立的鍵的一些選項,可以是這些值:REG_OPTION_NON_VOLATILE,REG_OPTION_VOLATILE,REG_OPTION_BACKUP_RESTORE第一個是默認的了。一般用第一個就可以了。*/
REGSAM samDesired, // 設置你對你建立的這個鍵的訪問權限
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
//不太明白
PHKEY phkResult, // 指向你建的句柄
LPDWORD lpdwDisposition //用來查看是打開一個已經有的鍵,還是新建了鍵
);
RegCreateKey()函數簡單了不少,請自己看了。
返回值:不成功返回非0,成功返回ERROR_SUCCESS.
解釋:打開指定的鍵或子鍵。如果要打開的鍵不存在的話,本函數會試圖建立它。當在創建或打開注冊表的鍵時,需要指定訪問權限,而這些訪問權限需要到一級。默認的權限是KEY_ALL_Access權限。還有KEY_CREATE_LINK創建字符鏈權限,KEY_CREATE_SUB_KEY創建子鍵權限,KEY_EXECUTE讀取鍵權限,KEY_NOTIFY獲得修改鍵通知的權限,KEY_QUERY_VALUE查詢鍵值的權限,KEY_SET_VALUE設置數據值的權限。注意不能在根一級建鍵,在注冊表的根一級僅可有預定義的鍵。具體使用,請查看聯機手冊。
例子:
HKEY m_hkey;
DWORD dwDisposition;
long ret0=(::RegCreateKeyEx
(HKEY_CURRENT_USER,"REGD\\",0,NULL,
REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hkey,&dwDisposition));
if(ret0!=ERROR_SUCCESS) //如果無法打開hKEY,則終止程序的執行
{
MessageBox("錯誤: 無法打開有關的hKEY!");
return;
}
if(dwDisposition==REG_OPENED_EXISTING_KEY)
MessageBox("打開了一個已經存在的鍵");
else
{
if(dwDisposition==REG_CREATED_NEW_KEY)
MessageBox("建立一個新鍵");
}
RegClosekey(m_hkey);

3·RegOpenKey()和RegOpenKeyEx()
原形:LONG RegOpenKeyEx(
HKEY hKey, // 要打開主鍵名
LPCTSTR lpSubKey, // 子鍵或路徑
DWORD ulOptions, // 保留,為0
REGSAM samDesired, // 操作權限標志
PHKEY phkResult // 指向你打開鍵的句柄
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS.
解釋:該函數負責打開指定的鍵或子鍵,如果不存在他不建立。其他和RegCreateKeyEx()和RegCreateKey()基本相同。

4·RegDeleteKey()
原形:LONG RegDeleteKey(
HKEY hKey, // 已打開的鍵的句柄
LPCTSTR lpSubKey // 要刪除的子鍵或路徑,傳如""將刪除key本身
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
該函數用來刪除注冊表中的一個鍵值的。在用此函數時需要注意98與NT的差異。在NT中在刪除一個鍵之前,要求必須刪除所有子鍵,需要從下向上遞歸刪除所有子鍵,而Windows98沒有他那么復雜,只要刪除鍵及其所有子鍵就可以啦。

5·RegQueryValue()和RegQueryValueEx()
原形:LONG RegQueryValueEx(
HKEY hKey, // 已打開的鍵的句柄
LPTSTR lpValueName, // 要查詢值的名稱,傳如""為查詢鍵下的默認值
LPDWORD lpReserved, // 保留,為0
LPDWORD lpType, // 查詢的類型
LPBYTE lpData, // 數據存放的地址
LPDWORD lpcbData // 數據長度 1
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:讀取某子鍵下特定名稱的值。
例子
CString m_strQ;//用來存放查詢來的字符串值
DWORD m_dwCount;//記錄字符串的長度 1(包括NULL字符)
::RegQueryValueEx(m_hkey,"",0,NULL,NULL,&m_dwCount);//先查詢出字節空間
ret1=(::RegQueryValueEx
(m_hkey,"",0,NULL,(unsigned char *)m_strQ.GetBuffer(m_dwCount),&m_kk));
m_strQ.ReleaseBuffer();
MessageBox(m_strQ);

6·RegSetValue()和RegSetValueEX()
原形:LONG RegSetValueEx(
HKEY hKey, // 已打開的鍵的句柄
LPCTSTR lpValueName, // 要查詢值的名稱,傳如""為查詢鍵下的默認值
DWORD Reserved, // 保留
DWORD dwType, // 變量的類型
CONST BYTE *lpData, // 變量數據的地址
DWORD cbData // 變量的長度
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:設置某子鍵下特定名稱的值。

7·RegEnumValue()
原形:LONG RegEnumValue(
HKEY hKey, // 要查詢的已打開的鍵的句柄
DWORD dwIndex, // 讀取名稱的索引號
LPTSTR lpValueName, // 返回所讀取的名稱
LPDWORD lpcbValueName, // 返回讀取名稱的長度,不含chr(0)
LPDWORD lpReserved, // 保留,為0
LPDWORD lpType, // 返回所讀取的數據類型
LPBYTE lpData, // 返回所讀取的數據
LPDWORD lpcbData // 返回所讀取的數據長度
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:列出某Key的所有名稱的值,變化索引即可遍歷整個鍵下的名稱和數據。

8·RegDeleteValue()
原形:LONG RegDeleteValue(
HKEY hKey, // 要刪除的鍵的句柄
LPCTSTR lpValueName // 要刪除的名稱
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:刪除某Key的某一名稱

9·RegEnumKey()和RegEnumKeyEx()
原形:LONG RegEnumKeyEx(
HKEY hKey, // 要列舉的鍵的句柄
DWORD dwIndex, // 索引
LPTSTR lpName, // 子鍵的名稱
LPDWORD lpcbName, // 子鍵名稱的長度
LPDWORD lpReserved, // 保留
LPTSTR lpClass, // address of buffer for class string
LPDWORD lpcbClass, // address for size of class buffer
PFILETIME lpftLastWriteTime
// address for time key last written to
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
返回注冊表鍵及其子鍵的詳細信息。

10·RegQueryInfoKey()
原形:LONG RegQueryInfoKey(
HKEY hKey, // 已打開的鍵的句柄
LPTSTR lpClass, // 類型名稱,僅使用于NT。若不使用則傳入Null
LPDWORD lpcbClass, // 類型名稱的長度
LPDWORD lpReserved, // 保留
LPDWORD lpcSubKeys, // 返回子鍵的數目
LPDWORD lpcbMaxSubKeyLen, // 返回最長的子鍵長度
LPDWORD lpcbMaxClassLen, // 返回最長的類長度
LPDWORD lpcValues, // 返回值的數目
LPDWORD lpcbMaxValueNameLen, // 返回最長的值項名稱的長度
LPDWORD lpcbMaxValueLen, // 返回最長的值的長度
LPDWORD lpcbSecurityDescriptor, //返回安全描述,僅適用于 NT
PFILETIME lpftLastWriteTime // 返回鍵最后被寫入的時間,僅適用于 NT
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:返回注冊表鍵的信息,包括類名、子鍵數量、最長子鍵名、值的數量、最長值數據、安全描述符的長度以及上一次寫入的時間等。

11·RegLoadKey()
原形:LONG RegLoadKey(
HKEY hKey, // 打開的句柄
LPCTSTR lpSubKey, //子鍵的路徑
LPCTSTR lpFile // 要寫入注冊表信息的文件
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:從指定的文件恢復注冊表鍵的子鍵信息到注冊表。

12·RegReplaceKey()
原形:LONG RegReplaceKey(
HKEY hKey, // handle to open key
LPCTSTR lpSubKey, // address of name of subkey
LPCTSTR lpNewFile, // 在替換前生成新的備份文件
LPCTSTR lpOldFile // 需要覆蓋上注冊表的文件
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:從指定的文件恢復注冊表鍵的子鍵信息到注冊表并替換原有的值,并生成新的備份文件

13· RegSaveKey()
LONG RegSaveKey(
HKEY hKey, // 要保存的句柄
LPCTSTR lpFile, // 保存子鍵的文件
LPSECURITY_ATTRIBUTES lpSecurityAttributes //不太懂
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:保存鍵及其子鍵信息到指定的文件。

14· RegConnectRegistry()
原形:LONG RegConnectRegistry(
LPTSTR lpMachineName, //遠程計算機的名稱
HKEY hKey, // 預先注冊的句柄
PHKEY phkResult // 遠程計算機上的句柄
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
解釋:連接到遠程系統的注冊表。

15·RegNotifyChangeKeyValue()
當修改指定的注冊表對象時提供通知。

16· RegUnloadKey()
LONG RegUnLoadKey(
HKEY hKey, // handle to open key
LPCTSTR lpSubKey // address of name of subkey to unload
);
返回值:不成功返回非0,成功返回ERROR_SUCCESS
刪除注冊表鍵及其所有的子鍵。
posted on 2009-05-22 11:24 漂漂 閱讀(3674) 評論(0)  編輯 收藏 引用 所屬分類: c++經典文章轉載
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品网址| 亚洲国产精品99久久久久久久久| 亚洲九九爱视频| 欧美91视频| 亚洲精品一区二区网址| 亚洲国产精品第一区二区三区 | 亚洲制服丝袜在线| 亚洲午夜精品久久久久久浪潮| 国产精品久久久久久影院8一贰佰| 亚洲一二三级电影| 欧美亚洲一区二区在线| 在线看日韩av| 日韩亚洲欧美一区二区三区| 欧美性猛交xxxx乱大交退制版| 欧美亚洲在线播放| 久久精品123| 99精品视频一区| 午夜一区二区三视频在线观看| 永久免费视频成人| 亚洲激情自拍| 国产香蕉久久精品综合网| 久久综合伊人77777蜜臀| 欧美顶级少妇做爰| 欧美在线观看视频在线 | 99热精品在线| 国产一区二区三区四区hd| 欧美国产一区二区三区激情无套| 欧美视频精品在线观看| 另类天堂av| 国产精品久久久久久超碰| 久久综合精品一区| 国产精品观看| 欧美激情网站在线观看| 国产精品一区二区三区乱码| 欧美黄色aa电影| 国产视频欧美视频| 一本色道**综合亚洲精品蜜桃冫| 国产主播精品| 中文一区二区在线观看| 亚洲精品日韩激情在线电影 | 欧美韩日亚洲| 国产日韩欧美中文| 亚洲日韩欧美视频一区| 韩国免费一区| 香蕉免费一区二区三区在线观看| 最新热久久免费视频| 亚洲欧美综合国产精品一区| 在线不卡免费欧美| 亚洲精品一区久久久久久| 国产日韩欧美三区| 亚洲深爱激情| 亚洲美女在线视频| 免费成人av资源网| 欧美88av| 亚洲大胆美女视频| 欧美在线视频一区二区| 欧美影院成人| 国产日本欧美视频| 小嫩嫩精品导航| 性欧美超级视频| 国产精一区二区三区| 国产精品99久久久久久人| 中日韩高清电影网| 欧美日韩亚洲综合| 99精品国产热久久91蜜凸| 一区二区三区不卡视频在线观看 | 欧美激情a∨在线视频播放| 国产资源精品在线观看| 香蕉亚洲视频| 久热精品视频在线免费观看| 好吊妞这里只有精品| 久久精品女人天堂| 你懂的国产精品| 亚洲美女av网站| 欧美四级在线| 亚洲在线视频观看| 久久久久久久高潮| 136国产福利精品导航| 另类专区欧美制服同性| 91久久精品一区| 在线一区视频| 国产欧美精品一区| 久久久久女教师免费一区| 免费在线日韩av| 日韩视频精品| 国产精品视频大全| 久久国产精品色婷婷| 欧美aⅴ99久久黑人专区| 亚洲美女在线观看| 国产精品久久久久aaaa| 久久成人av少妇免费| 亚洲国产高清自拍| 亚洲欧美美女| 影音先锋日韩资源| 欧美日韩精品免费观看| 欧美亚洲视频一区二区| 亚洲大胆在线| 午夜在线电影亚洲一区| 在线免费观看视频一区| 欧美日韩亚洲一区在线观看| 午夜在线观看免费一区| 亚洲国产合集| 久久精品国产一区二区三区免费看 | 性感少妇一区| 亚洲国产精品国自产拍av秋霞| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产亚洲欧洲| 欧美日韩国产一级片| 久久av老司机精品网站导航| 亚洲人成网站999久久久综合| 欧美一区二区在线播放| 亚洲激情综合| 国产日韩欧美夫妻视频在线观看| 牛夜精品久久久久久久99黑人| 亚洲午夜免费视频| 亚洲国产综合在线| 乱中年女人伦av一区二区| 亚洲欧美国产一区二区三区| 在线免费一区三区| 国产欧亚日韩视频| 欧美午夜精品电影| 欧美激情91| 久久综合给合| 久久精品99国产精品酒店日本| 一本大道久久a久久综合婷婷| 欧美国产第一页| 久久伊人一区二区| 久久精品盗摄| 午夜精品久久久久久久久久久| av成人福利| 亚洲精品人人| 亚洲激情小视频| 亚洲国产欧美一区| 狠久久av成人天堂| 狠狠色丁香久久综合频道| 国产精品永久在线| 国产精品一区二区三区乱码| 欧美偷拍一区二区| 欧美日韩一区在线观看| 欧美日韩免费观看一区二区三区 | 国产精品资源在线观看| 欧美日韩在线不卡| 欧美视频久久| 国产精品久久二区二区| 国产精品theporn| 欧美小视频在线| 国产精品久久久久aaaa樱花| 国产精品高潮在线| 国产麻豆91精品| 国产日韩综合一区二区性色av| 国产人妖伪娘一区91| 国产手机视频一区二区| 国产自产高清不卡| 在线精品一区二区| 亚洲精品一区中文| 一本色道久久综合亚洲精品小说| 99一区二区| 亚洲欧美一区二区激情| 久久精品欧美日韩| 欧美肥婆在线| 亚洲美女黄色| 亚洲欧美综合精品久久成人| 久久av资源网站| 老司机一区二区三区| 欧美欧美在线| 国产欧美韩日| 亚洲丰满在线| 亚洲小说欧美另类婷婷| 久久av一区| 欧美成人精品三级在线观看| 日韩视频二区| 久久国产欧美精品| 牛夜精品久久久久久久99黑人| 欧美三级日本三级少妇99| 国产香蕉久久精品综合网| 亚洲国产另类久久久精品极度| 一区二区电影免费在线观看| 久久精品99无色码中文字幕 | 久久久久久日产精品| 欧美激情精品久久久久久久变态 | 久久视频在线视频| 亚洲国产精品久久久久| 亚洲夜晚福利在线观看| 久久综合久色欧美综合狠狠 | 欧美激情欧美狂野欧美精品| 国产精品社区| 亚洲剧情一区二区| 久久精品水蜜桃av综合天堂| 亚洲欧洲免费视频| 欧美自拍偷拍午夜视频| 欧美日韩中文精品| **性色生活片久久毛片| 午夜激情综合网| 亚洲黄色av| 久久久久久9999| 国产精品一区在线观看你懂的| 亚洲国产日韩欧美| 欧美中在线观看| 亚洲精选中文字幕| 老司机精品久久|