为什么RegQueryValue调用失败?
BOOL COption::Register()
{
CString str;
HKEY hRegKey;
BOOL bResult;
str = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
if(::RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS)
{
bResult = FALSE;
}
else
{
char Transfer_Get[100];
long Len = 100;
if (::RegQueryValue(hRegKey,"Transfer",Transfer_Get,&Len) != ERROR_SUCCESS)//查询键值
{
bResult = FALSE;
}
else
{
bResult = TRUE;
}
}
RegCloseKey(hRegKey);
return bResult;
}
我的应用程序名为Transfer,注册了开机自动运行,但是为什么我用上面的查询函数时RegQueryValue总是调用失败?
问题点数:20、回复次数:3Top
1 楼keiy()回复于 2005-05-02 10:50:03 得分 20
::RegQueryValue可能是有问题,改RegQueryValueEx试试
char Transfer_Get[100];
DWORD Len =100;
DWORD ty=REG_SZ;
if (::RegQueryValueEx(hRegKey,"Transfer",NULL,&ty,(unsigned char *)Transfer_Get,&Len) != ERROR_SUCCESS)//查询键值
Top
2 楼anlywei(建安)回复于 2005-05-02 11:09:59 得分 0
改成RegQueryValueEx就行,为什么的?Top
3 楼keiy()回复于 2005-05-02 11:23:51 得分 0
看MSDN:
The RegOpenKey function opens the specified key. This function is provided for compatibility with Windows version 3.1. Win32-based applications should use the RegOpenKeyEx function.
RegOpenKey只支持Windows version 3.1,太老的版本了Top




