日期:2014-05-17  浏览次数:21031 次

注册表编程的问题:类型为REG_DWORD的项读不出来
if(OpenKey=RegOpenKey(HKEY_LOCAL_MACHINE,_T("SYSTEM\\CurrentControlSet\\Services\\ACPI");,&hKey))!=ERROR_SUCCESS)
{
  DWORD type1=REG_DWORD;
  DWORD type2=REG_EXPAND_SZ;
  DWORD Start;//用于装载类型为REG_DWORD的值
  DWORD lpcbData;
  unsigned char path[MAX_PATH];
  DWORD pathlen=MAX_PATH;
RegQueryValueEx(tempKey,_T("Start"),NULL,&type1,NULL,&lpcbData);
QueryValue=RegQueryValueEx(tempKey,_T("Start"),NULL,&type1,(LPBYTE)&Start,&lpcbData);//查询Start的值
QueryValue=RegQueryValueEx(tempKey,_T("ImagePath"),NULL,&type2,path,&pathlen); //查询ImagePath的值 CString p(path);
AfxMessageBox(p); //正确输出
CString data((LPBYTE)Start);//获得start的值
AfxMessageBox(data) //输出失败
}

最终ImagePath成功输出,说明对tempKey的查询是成功,但是输出的Start是错误的,刚接触注册表编程不知道如何读取类型为REG_DWORD的值


------解决方案--------------------
解决了就好。涉及编程的问题,最好发到专门的编程版块,会得到很好的解答。