1
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuUmbv50LcNncvRXYjlGZul0ZulmbpxGd190LcNXZnFWbJ9CX0Vmbu4GZzNmLn9GbiVGdpJ3dvw1LcpDc0RHaiojIsJye.gif)
HKEY regOldHKey;
2
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuUmbv50LcNncvRXYjlGZul0ZulmbpxGd190LcNXZnFWbJ9CX0Vmbu4GZzNmLn9GbiVGdpJ3dvw1LcpDc0RHaiojIsJye.gif)
3
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuUmbv50LcNncvRXYjlGZul0ZulmbpxGd190LcNXZnFWbJ9CX0Vmbu4GZzNmLn9GbiVGdpJ3dvw1LcpDc0RHaiojIsJye.gif)
//Open Register Key
4
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuUmbv50LcNncvRXYjlGZul0ZulmbpxGd190LcNXZnFWbJ9CX0Vmbu4GZzNmLn9GbiVGdpJ3dvw1LcpDc0RHaiojIsJye.gif)
if(::RegOpenKeyEx(HKEY_CURRENT_USER,"Software//OKI//CCons33//UNITTYPE",0,KEY_ALL_ACCESS,®OldHKey)==ERROR_SUCCESS)
5
{
6
long lResult;
7
DWORD dwIndex=0;
8
CHAR* tcKeyName = new CHAR[MAX_PATH];
9
DWORD dwKeyNameLen = MAX_PATH;
10
LPBYTE newByte = new BYTE[MAX_PATH];
11
DWORD nType;
12
DWORD lpSize=MAX_PATH;
13
LPBYTE pbbinKeyData=NULL;
14
while(TRUE)
15
{
16
//circulate the Register
17
lResult=RegEnumValue(regOldHKey,dwIndex,tcKeyName,&dwKeyNameLen,NULL,NULL,NULL,NULL);
18
if(lResult!=ERROR_SUCCESS)
19
break; //if the End then break;
20
21
//Use the key Get the value
22
long retValue;
23
if((retValue=::RegQueryValueEx(regOldHKey,(LPCTSTR)tcKeyName,NULL,&nType,newByte,&lpSize))==ERROR_MORE_DATA)
24
{
25
newByte=(LPBYTE)"NULL";
26
}
27
28
//Print the key and the value
29
cout<<"Key:"<<(LPCTSTR)tcKeyName;
30
cout<<"/t";
31
cout<<"Value:"<<(LPCTSTR)newByte<<endl;
32
dwIndex++;
33
dwKeyNameLen=MAX_PATH;
34
lpSize=MAX_PATH;
35
}
36
}
第二個問題:Link時出錯問題
在VC中想把系統資料庫删除,查MSDN查到了SHDeleteKey 這個函數,函數使用很簡單:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuUmbv50LcNncvRXYjlGZul0ZulmbpxGd190LcNXZnFWbJ9CX0Vmbu4GZzNmLn9GbiVGdpJ3dvw1LcpDc0RHaiojIsJye.gif)
if (SHDeleteKey(HKEY_CURRENT_USER, " Software//OKI//CCons32//NeedDelete " ) == ERROR_SUCCESS)
{
cout<<"Delete Finish"<<endl;
}
MSDN上面注明要加入shlwapi.h這個頭檔案,但我另進去之後,link出現錯誤. 說是LNK2001無法解析的外部符号“symbol”.
不加,找不到函數定義.
其實解決這個問題很簡單.在VC菜單中Project->Setting->Link 下面project options的文本框中,輸入shlwapi.lib問題就可以解決了.害得我花了幾個小時時間.
(或者,在Code前面加上#pragma comment(lib,"shlwapi.lib"))也可以解決問題。