概述
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;失败返回错误值
获取CPU名称
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemCentralProcessor 子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
获取CPU标识
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemCentralProcessor 子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
获取CPU制造商名称
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemCentralProcessor 子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
获取CPU主频
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemCentralProcessor 子键中获取~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 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();//关闭注册表
}
获取CPU个数
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;
//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);
- }
void CSystemHardwareInfoDlg::OnButton5()
{
SYSTEM_INFO sysInfo;
GetSystemInfo(&sysInfo);
m_dwNum=sysInfo.dwNumberOfProcessors;
UpdateData(FALSE);
}
获取显卡BIOS版本号
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystem子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
获取显卡BIOS更新日期
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystem子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
获取系统BIOS版本号
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystem子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
获取系统BIOS更新日期
获取HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystem子键中获取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();//关闭注册表
- }
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();//关闭注册表
}
最后
以上就是受伤过客为你收集整理的通过注册表获取硬件信息 的全部内容,希望文章能够帮你解决通过注册表获取硬件信息 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复