从注册表中读取指定的值:
char strDSN[20];
char strPwd[20];
char strUserID[20];
DWORD count=20;
CRegKey regkey;
regkey.Open(HKEY_CURRENT_USER,"software\\sysvalue\\datasource");
regkey.QueryValue(strDSN,"name",&count);
regkey.QueryValue(strPwd,"password",&count);
regkey.QueryValue(strUserID,"LastUser",&count);得到的结果前两个正确,最后一个是乱码,而且读取顺序不同结果也不同,怎么会这样?是不是m_hKey在搞鬼?
char strDSN[20];
char strPwd[20];
char strUserID[20];
DWORD count=20;
CRegKey regkey;
regkey.Open(HKEY_CURRENT_USER,"software\\sysvalue\\datasource");
regkey.QueryValue(strDSN,"name",&count);
regkey.QueryValue(strPwd,"password",&count);
regkey.QueryValue(strUserID,"LastUser",&count);得到的结果前两个正确,最后一个是乱码,而且读取顺序不同结果也不同,怎么会这样?是不是m_hKey在搞鬼?
解决方案 »
- 关于IP adress的内容获取
- 文档中打开指定类型的文件?
- 有关类的静态变量用法?帮忙设计一下
- 关于窗口嵌套的问题
- 百分求一个自动重复录入的问题
- WebBrowser中Script错误调试的对话框,怎么知道他在什么时候弹出呢?请进来探讨一下
- 只要能提供windows平台下软件开发包SDK,本人马上给分。
- p_Set->MoveLast(); p_Set->MoveNext();为什么会出错?如何遍历整个数据库???
- 请教一个小问题:通常自己定义的ID在那里定义好?也放在Resource.h里面吗?
- 关于 Unicode 的问题, 请高手帮助
- 什么是面向对象编程??有谁是真正理解的??能不能告诉我,救命啊,快疯了!!
- _stdcall是什么意思?还有COM接口是怎么一回事?
没有得出结论为什么会这样。建议使用RegQueryValueEx函数。
以下有一个例子:
HKEY hkRoot;
CString pwd;
long lResult;
unsigned char * pch = new BYTE[80];
DWORD type_1 = REG_SZ;
DWORD cbData_1=80;
lResult = RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
"software\\Taiji\\fiu",
0,
KEY_ALL_ACCESS,
&hkRoot
);
if(lResult!=ERROR_SUCCESS)
{
//错误处理,退出
}
lResult = RegQueryValueEx(
hkRoot,
"SYSPWD",
NULL,
&type_1,
pch,
&cbData_1);
if(lResult != ERROR_SUCCESS)
{
}
pwd.Format("%s",pch);
HKEY hkRoot;
long lResult;
unsigned char * pch = new BYTE[80];
DWORD type_1 = REG_SZ;
DWORD cbData_1=80;
lResult = RegOpenKeyEx(
HKEY_CURRENT_USER,
"software\\sysvalue\\datasource",
0,
KEY_EXECUTE,
&hkRoot
); unsigned char * strDSN = new BYTE[80];
unsigned char * strServer = new BYTE[80];
unsigned char * strUserID = new BYTE[80];
lResult=RegQueryValueEx(
hkRoot,
"name",
NULL,
&type_1,
strDSN,
&cbData_1);
if(lResult != ERROR_SUCCESS)
{
MessageBox(NULL,"name","sf",MB_ICONERROR);
}
lResult = RegQueryValueEx(
hkRoot,
"IsChange",
NULL,
&type_1,
pch,
&cbData_1);
MessageBox(NULL,CString(pch),"sf",MB_OK); lResult=RegQueryValueEx(
hkRoot,
"Server",
NULL,
&type_1,
strServer,
&cbData_1);
if(lResult != ERROR_SUCCESS)
{
MessageBox(NULL,"Server","sf",MB_ICONERROR);
}
lResult=RegQueryValueEx(
hkRoot,
"LastUser",
NULL,
&type_1,
strUserID,
&cbData_1);
if(lResult != ERROR_SUCCESS)
{
MessageBox(NULL,"LastUser","sf",MB_ICONERROR);
}