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

隨筆 - 8  文章 - 26  trackbacks - 0
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(5)

隨筆檔案

文章分類

文章檔案

相冊(cè)

C++語(yǔ)言

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

今天在教室看書實(shí)在無(wú)聊,趕上這兩天在學(xué)習(xí)注冊(cè)表操作函數(shù),就寫了這堆代碼,寫完在機(jī)子上運(yùn)行了下感覺(jué)還不錯(cuò),也就把注冊(cè)表的一些信息寫進(jìn)了單項(xiàng)鏈表中,便于實(shí)現(xiàn)查找操作。
代碼如下:
/*存放子鍵與鍵值的數(shù)據(jù)結(jié)構(gòu)*/
typedef struct RegValueInfo
{
DWORD sValueCnt;
//鍵值數(shù)量,用于頭節(jié)點(diǎn)中
TCHAR sValueName[256];//鍵值名
TCHAR sValueData[256];//鍵值數(shù)據(jù)
DWORD sType;//鍵值類型
struct RegValueInfo *next;//指向下一節(jié)點(diǎn)的指針
}
RegValueInfo,*PRegValueInfo;
 
typedef struct RegKeyInfo
{
DWORD dSunkeyCnt;
//用于頭節(jié)點(diǎn)中記錄子鍵數(shù)量
TCHAR lpName[256];//子鍵名稱
struct RegKeyInfo *next;//指向下一節(jié)點(diǎn)的指針
}
RegKeyInfo,*PRegKeyInfo;
 
/**************************************************************/
/*枚舉鍵值名、數(shù)據(jù)、類型,并存放于鏈表中,RKI 為鏈表的頭指針*/
/**************************************************************/
BOOL MyRegEnumValue(
                               HKEY hKey,
//打開(kāi)注冊(cè)表鍵的句柄
                   LPCTSTR lpSubKey,//要打開(kāi)的注冊(cè)表子鍵名稱
                   REGSAM samDesired,//打開(kāi)時(shí)所要的權(quán)限
                   RegValueInfo ** RKI//用于接收鏈表首地址的指針
                             )
{
int Ret=0;
HKEY hkey
=NULL;
Ret
=RegOpenKeyEx(hKey,lpSubKey,0,samDesired,&hKey);
if(ERROR_SUCCESS!=Ret)
{
 
cout
<<"RegOpenKeyEx error ."<<endl;
RegCloseKey(hkey);
return FALSE;
}
                           
DWORD dwIndex
=0;//鍵值索引號(hào)
DWORD dwValueCnt;//鍵值數(shù)量
DWORD dwValueNameMaxLen;//鍵值名稱最大長(zhǎng)度
DWORD dwValueDataMaxLen;//鍵值數(shù)據(jù)最大長(zhǎng)度
TCHAR *szValueName;//鍵值名稱
BYTE *szValueData;//鍵值數(shù)據(jù)
DWORD dwValueType;//鍵值類型
 
 
Ret
=RegQueryInfoKey(hKey,NULL,NULL,NULL,NULL,NULL,NULL,&dwValueCnt,&dwValueNameMaxLen,&dwValueDataMaxLen,NULL,NULL);
if(ERROR_SUCCESS!=Ret)
{
 
cout
<<"RegQueryInfoKey error ."<<endl;
RegCloseKey(hKey);
return FALSE;
}
            
                             
 
RegValueInfo 
* Tail;//尾指針
*RKI=new RegValueInfo;////構(gòu)造單鏈表的頭節(jié)點(diǎn)
(*RKI)->sValueCnt=dwValueCnt;                        
(
*RKI)->next=NULL;
Tail
=*RKI;
//開(kāi)始枚舉所有子鍵
for(;dwIndex<dwValueCnt;dwIndex++)
{
DWORD dwValueNameSize
=dwValueNameMaxLen+1;
DWORD dwValueDataSize
=dwValueDataMaxLen+1;
szValueName
=new TCHAR[dwValueNameSize]; 
szValueData
=new BYTE[dwValueDataSize];
 
RegEnumValue(hKey,dwIndex,szValueName,
&dwValueNameSize,0,&dwValueType,(unsigned char *)szValueData,&dwValueDataSize);
RegValueInfo 
*NewNode=new RegValueInfo;
strcpy(NewNode
->sValueName,szValueName);
strcpy(NewNode
->sValueData,(const char *)szValueData);
NewNode
->sType=dwValueType;
Tail
->next=NewNode;
Tail
=NewNode;
}
//for                            
                             
Tail
->next=NULL;                        
return TRUE;                                                          
 }
//end_fun
 
/*枚舉子鍵名,并存放于鏈表中,RKI 為鏈表頭*/
 
BOOL MyRegEnumKey(
                               HKEY hKey,
//打開(kāi)注冊(cè)表鍵的句柄
                   LPCTSTR lpSubKey,//要打開(kāi)的注冊(cè)表子鍵名稱
                   REGSAM samDesired,//打開(kāi)時(shí)所要的權(quán)限
                   RegKeyInfo ** RKI//用于接收鏈表首地址的指針
                             )
{
int Ret=0;
HKEY hkey
=NULL;
Ret
=RegOpenKeyEx(hKey,lpSubKey,0,samDesired,&hKey);
if(ERROR_SUCCESS!=Ret)
{
 
cout
<<"RegOpenKeyEx error ."<<endl;
RegCloseKey(hkey);
return FALSE;
}
                           
DWORD dwIndex
=0;//子鍵索引號(hào)
DWORD dwKeyCnt;//子鍵數(shù)量
DWORD dwKeyMaxLen;//子鍵名稱最大長(zhǎng)度
TCHAR *szKeyName;//子鍵名稱
 
Ret
=RegQueryInfoKey(hKey,NULL,NULL,NULL,&dwKeyCnt,&dwKeyMaxLen,NULL,NULL,NULL,NULL,NULL,NULL);
if(ERROR_SUCCESS!=Ret)
{
 
cout
<<"RegQueryInfoKey error ."<<endl;
RegCloseKey(hKey);
return FALSE;
}
            
                             
 
RegKeyInfo 
* Tail;//尾指針
*RKI=new RegKeyInfo;////構(gòu)造單鏈表的頭節(jié)點(diǎn)
(*RKI)->dSunkeyCnt=dwKeyCnt;                       
(
*RKI)->next=NULL;
Tail
=*RKI;
//開(kāi)始枚舉所有子鍵
for(;dwIndex<dwKeyCnt;dwIndex++)
{
DWORD dwKeySize
=dwKeyMaxLen+1;
szKeyName
=new TCHAR[dwKeySize]; 
RegEnumKeyEx(hKey,dwIndex,szKeyName,
&dwKeySize,0,NULL,NULL,NULL);
RegKeyInfo 
*NewNode=new RegKeyInfo;
strcpy(NewNode
->lpName,szKeyName);
Tail
->next=NewNode;
Tail
=NewNode;
}
//for                            
                             
Tail
->next=NULL;                        
return TRUE;                                                          
 }
//end_fun
 
/********************************************************/
#include
<windows.h>
#include
<iostream.h>
void main()
{
RegValueInfo 
* p1;
RegKeyInfo 
* p2;
 
BOOL ret
=FALSE;
ret
=MyRegEnumValue(HKEY_LOCAL_MACHINE,"software\\microsoft\\windows\\currentversion",KEY_ALL_ACCESS,&p1);
if(FALSE==ret)
{
cout
<<"wrong"<<endl;
return;
}

 
cout
<<"輸出鍵值信息"<<endl;
cout
<<"子鍵數(shù)量:"<<p->sValueCnt<<endl;
for(p1=p1->next;p1;p1=p1->next)
{cout<<p1->sValueName<<endl;
cout
<<p1->sValueData<<endl;
cout
<<p1->sType<<endl;
}

cout
<<"=========================================="<<endl;
cout
<<"輸出子鍵信息"<<endl;
ret
=MyRegEnumValue(HKEY_LOCAL_MACHINE,"software\\microsoft\\windows\\currentversion",KEY_ALL_ACCESS,&p2);
if(FALSE==ret)
{
cout
<<"wrong"<<endl;
return;
}

cout
<<"子鍵數(shù)量:"<<p2->dSunkeyCnt;
for(p=p->next;p;p=p->next)
{cout<<p->lpName<<endl;} 
}

posted on 2008-06-14 09:39 楊彬彬 閱讀(302) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Windows編程
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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精品热6080yy久久| 国产精品一区二区a| 米奇777超碰欧美日韩亚洲| 亚洲欧美综合精品久久成人| 一本一道久久综合狠狠老精东影业 | 亚洲区欧美区| 最新亚洲视频| 欧美国产丝袜视频| 欧美日本不卡高清| 国产精品久久二区| 激情欧美亚洲| 一本色道久久综合亚洲精品不卡| 夜夜嗨av一区二区三区中文字幕| 99国产精品久久久| 久久动漫亚洲| 免费在线欧美视频| 99国产成+人+综合+亚洲欧美| 亚洲欧美国产另类| 欧美高清视频在线| 欧美fxxxxxx另类| 欧美人交a欧美精品| 黄色精品一二区| 午夜激情一区| 亚洲黄色视屏| 欧美成人精品一区二区| 国产一区二区三区在线观看精品| 国产专区一区| 一二三区精品福利视频| 久久精品色图| 亚洲欧美中文日韩在线| 欧美久久影院| 中国女人久久久| 99视频有精品| 国产精品一二三视频| 午夜欧美视频| 久久亚洲综合色一区二区三区| 国产伦精品一区二区三区照片91| 亚洲精品美女在线观看| 久久综合色播五月| 午夜在线一区| 国产日韩欧美一区二区| 久久一日本道色综合久久| 久久综合色播五月| 亚洲一区二区在线观看视频| 亚洲欧美日韩精品综合在线观看| 国产精品视频免费| 亚洲乱码日产精品bd| 亚洲激情国产| 欧美成人69| 99精品国产福利在线观看免费| 久久一二三四| 免费成人高清视频| 亚洲欧美国产毛片在线| 欧美在线黄色| 亚洲一区二区欧美日韩| 久久久久久网站| 亚洲小说区图片区| 亚洲欧美日韩在线播放| 亚洲欧美一区在线| 久久男人av资源网站| 欧美一区二区性| 欧美第一黄色网| 狂野欧美一区| 国产日韩欧美不卡| 99国产精品久久久久久久| 激情丁香综合| 久久黄色影院| 久久久999精品免费| 国产精品大片wwwwww| 亚洲高清中文字幕| 1000部精品久久久久久久久| 亚洲欧美影音先锋| 午夜久久一区| 国产一区二区在线观看免费| 国产精品99久久久久久有的能看 | 亚洲深夜福利在线| 亚洲小说春色综合另类电影| 欧美日韩国产首页在线观看| 亚洲日本欧美日韩高观看| 亚洲国产精品t66y| 欧美久久精品午夜青青大伊人| 最新成人av在线| 亚洲欧美综合另类中字| 国产午夜精品视频| 久久久亚洲一区| 亚洲精品久久久久久久久久久久久 | 亚洲美女视频网| 午夜久久资源| 在线观看日韩欧美| 亚洲欧洲日本国产| 国产精品区一区| 亚洲欧美日韩成人高清在线一区| 久久精品国产视频| 99国产一区| 亚洲第一色在线| 国产精品久久久久久久久久直播| 欧美一区在线视频| 999在线观看精品免费不卡网站| 欧美一区二区三区免费视| 91久久综合亚洲鲁鲁五月天| 久久成人免费| 香蕉国产精品偷在线观看不卡| 最新日韩av| 一区二区三区在线不卡| 国产精品自拍小视频| 欧美日韩精品一区二区| 欧美成人激情视频免费观看| 欧美制服第一页| 亚洲欧美综合v| 欧美一级在线视频| 欧美亚洲尤物久久| 性久久久久久久久| 久久精品日产第一区二区| 中文日韩在线| 久久精品99久久香蕉国产色戒| 亚洲欧美久久久| 欧美在线中文字幕| 久久久久久久尹人综合网亚洲| 欧美一区二区三区四区视频| 欧美中文字幕不卡| 免费成人激情视频| 欧美精品久久一区| 国产精品xxx在线观看www| 国产欧美日韩麻豆91| 国内成人精品2018免费看| 亚洲国产精品久久久久婷婷老年| 亚洲日韩视频| 亚洲欧美国产精品va在线观看| 久久精品成人| 亚洲成人在线免费| 亚洲美女91| 久久国内精品自在自线400部| 欧美3dxxxxhd| 亚洲欧美一区二区三区久久| 免费日韩av| 精品1区2区3区4区| 午夜免费久久久久| 亚洲激情啪啪| 久久久噜噜噜久噜久久| 国产精品v一区二区三区| 亚洲欧洲另类国产综合| 久久久999国产| 午夜国产精品影院在线观看| 欧美精品成人91久久久久久久| 黑人中文字幕一区二区三区| 亚洲欧美日韩在线| 亚洲一区二区高清| 欧美绝品在线观看成人午夜影视 | 欧美日韩成人精品| 亚洲精品午夜精品| 欧美高清视频在线播放| 久久午夜视频| 亚洲精品美女久久久久| 欧美大片一区二区三区| 久久夜色精品国产噜噜av| 在线精品国产成人综合| 欧美成人高清| 国产精品成人国产乱一区| 中文在线不卡视频| 午夜一级在线看亚洲| 黄色在线一区| 亚洲人体大胆视频| 欧美午夜欧美| 久久久噜噜噜久久中文字免 | 亚洲丰满少妇videoshd| 欧美成在线观看| 欧美亚洲一区二区三区| 久久久91精品国产| 亚洲精品视频在线| 亚洲自拍偷拍网址| 久久成人精品一区二区三区| 国产欧美日韩在线| 欧美大片在线观看一区二区| 欧美日韩视频在线| 久久久久国产免费免费| 欧美伦理在线观看| 免费亚洲一区| 国产在线视频欧美一区二区三区| 亚洲国产精品视频一区| 国产视频在线观看一区| 一本久道综合久久精品| 亚洲欧洲一区二区在线播放| 午夜视频久久久| 亚洲欧美激情精品一区二区| 欧美α欧美αv大片| 麻豆av一区二区三区| 国产午夜亚洲精品羞羞网站 | 亚洲综合导航| 亚洲专区在线视频| 欧美午夜不卡视频| 亚洲永久网站| 欧美在线黄色| 激情丁香综合| 美国成人直播| 亚洲黄色片网站| 亚洲精品综合| 欧美日韩另类字幕中文| 在线视频亚洲| 欧美一区二区三区另类| 国产欧美一区二区精品婷婷|