LONG QueryValue( LPTSTR szValue, LPCTSTR lpszValueName, DWORD* pdwCount )
szValue:字符串数据类型的键值
lpszValueName:所读取键值项的名称
pdwCount:字符串大小
成功读取注册表中某键值项的键值,成功返回ERROR_SUCCESS;失败返回错误值
注意第三个参数,为存储该键值的大小,应根据实际情况设定比较合理的空间,这里为30个字符。
LONG QueryValue( DWORD& dwValue, LPCTSTR lpszValueName)
dwValue:DWORD数据类型的键值
lpszValueName:所读取键值项的名称
pdwCount:字符串大小
成功读取注册表中某键值项的键值,成功返回ERROR_SUCCESS;失败返回错误值
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0子键中获取ProcessorNameString的键值。该注册表子键存储了当前计算机的处理器信息,如CPU名称、标识和厂商等。
void CSystemHardwareInfoDlg::OnButton1() { CString strPath="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chCPUName[50]; DWORD dwSize=50; regKey.QueryValue(chCPUName,"ProcessorNameString",&dwSize); //获取RegisteredOwner的值 m_strCPUName=chCPUName; UpdateData(FALSE); regKey.Close();//关闭注册表 }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0子键中获取Identifier的键值。
void CSystemHardwareInfoDlg::OnButton2() { CString strPath="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chCPUID[50]; DWORD dwSize=50; regKey.QueryValue(chCPUID,"Identifier",&dwSize); //获取RegisteredOwner的值 m_strCPUIdentifier=chCPUID; UpdateData(FALSE); regKey.Close();//关闭注册表 }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0子键中获取VendorIdentifier的键值。
void CSystemHardwareInfoDlg::OnButton3() { CString strPath="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chVendor[50]; DWORD dwSize=50; regKey.QueryValue(chVendor,"VendorIdentifier",&dwSize); //获取RegisteredOwner的值 m_strVendorID=chVendor; UpdateData(FALSE); regKey.Close();//关闭注册表 }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0子键中获取~MHz的键值。注意为DWORD类型。
void CSystemHardwareInfoDlg::OnButton4() { CString strPath="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } DWORD dwMHz; DWORD dwSize=50; regKey.QueryValue(dwMHz,"~MHz"); //获取RegisteredOwner的值 m_nMHz=dwMHz; UpdateData(FALSE); regKey.Close();//关闭注册表 }
VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo)
lpSystemInfo:指向存储当前计算机信息结构的指针
功能:获取当前计算机的信息
//SYSTEM_INFO结构包含有关当前计算机系统的信息。包括处理器类型,页面大小,内存地址,和OEM标识符。 typedef struct _SYSTEM_INFO { union { DWORD dwOemId; OemId过时的,不使用 struct { WORD wProcessorArchitecture; 处理器架构 WORD wReserved; }; }; DWORD dwPageSize; 页面大小 LPVOID lpMinimumApplicationAddress; 应用程序最小地址 LPVOID lpMaximumApplicationAddress; 应用程序最大地址 DWORD dwActiveProcessorMask; 处理器掩码 DWORD dwNumberOfProcessors; 处理器数量 DWORD dwProcessorType; 处理器类型 DWORD dwAllocationGranularity; 虚拟内存分配粒度 WORD wProcessorLevel; 处理器级别 WORD wProcessorRevision; 处理器版本 } SYSTEM_INFO, *LPSYSTEM_INFO;
void CSystemHardwareInfoDlg::OnButton5() { SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); m_dwNum=sysInfo.dwNumberOfProcessors; UpdateData(FALSE); }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System子键中获取VideoBiosVersion的键值。
void CSystemHardwareInfoDlg::OnButton6() { CString strPath="HARDWARE\\DESCRIPTION\\System"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chBiosVersion[2500]; DWORD dwSize=2500; regKey.QueryValue((char*)chBiosVersion,"VideoBiosVersion",&dwSize); m_strBiosID=chBiosVersion; UpdateData(FALSE); regKey.Close();//关闭注册表 }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System子键中获取VideoBiosDate的键值。
void CSystemHardwareInfoDlg::OnButton7() { CString strPath="HARDWARE\\DESCRIPTION\\System"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chVideoBiosDate[50]; DWORD dwSize=50; regKey.QueryValue((char*)chVideoBiosDate,"VideoBiosDate",&dwSize); m_strBiosDate=chVideoBiosDate; UpdateData(FALSE); regKey.Close();//关闭注册表 }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System子键中获取SystemBiosVersion的键值。
void CSystemHardwareInfoDlg::OnButton8() { CString strPath="HARDWARE\\DESCRIPTION\\System"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chBios[2500]; DWORD dwSize=2500; regKey.QueryValue((char*)chBios,"SystemBiosVersion",&dwSize); m_strBios=chBios; UpdateData(FALSE); regKey.Close();//关闭注册表 }
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System子键中获取SystemBiosDate的键值。
void CSystemHardwareInfoDlg::OnButton9() { CString strPath="HARDWARE\\DESCRIPTION\\System"; CRegKey regKey; LONG lResult; lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表主键 if (lResult!=ERROR_SUCCESS)//读取键值不成功 { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chBiosDate[50]; DWORD dwSize=50; regKey.QueryValue((char*)chBiosDate,"SystemBiosDate",&dwSize); m_strSystemBiosDate=chBiosDate; UpdateData(FALSE); regKey.Close();//关闭注册表 }