关于读取注册表。。
比如有HKEY_LOCAL_MACHINE\\System\\test
Value1 REG_SZ try
Value2 REG_SZ 202.100.100.100
怎样才能读到程序中来?
我用的是:
LPBYTE lpData=0;
LPDWORD lpcbData=0;
LPTSTR pValue;
pValue="try";//try为键的名称。
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"System\\test\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,pValue,NULL,REG_NONE,lpData,lpcbData);
编译通过,注册表内容已经存在,但是为什么得不到键值??
问题点数:46、回复次数:6Top
1 楼masterz(www.fruitfruit.com)回复于 2001-12-17 20:57:06 得分 40
char bufdata[1024];
DWORD buflen=1024;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"System\\test\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,"try",NULL,REG_SZ,bufdata,&buflen);
Top
2 楼Smartee_J()回复于 2001-12-17 20:59:05 得分 3
请试一下
LPBYTE lpData = new BYTE[20];
^^^^^^^^^^^^
LPDWORD lpcbData=0;
LPTSTR pValue;
pValue="try";//try为键的名称。
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"System\\test\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,pValue,NULL,REG_SZ,lpData,lpcbData);
^^^^^^
Top
3 楼ilovc()回复于 2001-12-17 21:22:05 得分 0
改为REG_SZ会出错。
cannot convert parameter 4 from 'const int' to 'unsigned long *'
用LPBYTE lpData = new BYTE[20];
不知为何?望解答,谢谢。Top
4 楼iLdf(七伤拳)回复于 2001-12-18 04:02:39 得分 3
请试一下:
BYTE Data[20];
DWORD dwDataType, cbData;
dwDataType = cbData = 0;
LPTSTR pValue = "try";
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"System\\test\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,pValue,NULL,&dwDataType,&Data,&cbData); Top
5 楼ilovc()回复于 2001-12-18 10:01:09 得分 0
55555,编译正确,还是得不到值。Top
6 楼ilovc()回复于 2001-12-18 10:32:02 得分 0
好了,还是masterz()的方法完全正确。
LPBYTE lpData = new BYTE[20];
^^^^^^^^^^^^
LPDWORD lpcbData=20;
LPTSTR pValue;
pValue="try";//try为键的名称。
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"System\\test\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,pValue,NULL,REG_SZ,lpData,lpcbData);
Top




