用vc怎么获取硬件信息
答案:2 悬赏:20
解决时间 2021-01-18 06:28
- 提问者网友:寂寞梧桐
- 2021-01-18 02:57
用vc怎么获取硬件信息
最佳答案
- 二级知识专家网友:迷人又混蛋
- 2021-01-18 03:11
1、获取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();//关闭注册表
} 2、获取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();//关闭注册表
} 3、获取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();//关闭注册表
} 4、获取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();//关闭注册表
}
获取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();//关闭注册表
} 2、获取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();//关闭注册表
} 3、获取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();//关闭注册表
} 4、获取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();//关闭注册表
}
全部回答
- 1楼网友:笑迎怀羞
- 2021-01-18 04:11
获取硬件信息(好使给加分呀)
在.net环境下(用VC#描述)获取机器的硬件信息,要用到一个类库(System.Management.dll),在解决方案资源管理器中添加System.Management 即可
我们可以将该程序编译成.dll文件,便于以后调用;
在程序代码中进行引用 using System.Management;
具体 代码为:
1.获取机器名:
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}
2.获取CPU编号
public string GetCpuId()
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
String strCpuID = null ;
foreach( ManagementObject mo in moc )
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
3.获取主硬盘编号
public string GetMainHardDiskId()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECt * FROM Win32_PhysicalMedia");
String strHardDiskID = null ;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
return strHardDiskID ;
}
4.获取bios和mac地址,这个有点复杂,需要用到NETAPI32.DLL
在.net环境下(用VC#描述)获取机器的硬件信息,要用到一个类库(System.Management.dll),在解决方案资源管理器中添加System.Management 即可
我们可以将该程序编译成.dll文件,便于以后调用;
在程序代码中进行引用 using System.Management;
具体 代码为:
1.获取机器名:
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}
2.获取CPU编号
public string GetCpuId()
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
String strCpuID = null ;
foreach( ManagementObject mo in moc )
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
3.获取主硬盘编号
public string GetMainHardDiskId()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECt * FROM Win32_PhysicalMedia");
String strHardDiskID = null ;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
return strHardDiskID ;
}
4.获取bios和mac地址,这个有点复杂,需要用到NETAPI32.DLL
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息