定义:
CString DetectCPUType();
CString DetectMemoryType();
变量:
// CPU type
CString m_sCPUNameString;
CString m_sCPUIdentifier;
CString m_sCPUVendorIdentifier;
DWORD m_dwCPUSpeed;
// total physical memory in MB
DWORD m_TotMem;
// total virtual memory
DWORD m_TotVirtMem;
函数:
CString CSystemLocalInfo::DetectCPUType()
{
LONG lresult;
HKEY NewKey;
lresult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T(CPU_CONFIGURATION_KEY),
0,KEY_EXECUTE,&NewKey);
if (ERROR_SUCCESS != lresult) return 0; // key not found
TCHAR szKeyValue[100]; memset(szKeyValue,0,100);
DWORD dwType=REG_SZ; DWORD dwSize=100;
lresult=RegQueryValueEx(NewKey,_T("Identifier"),NULL,
&dwType,(LPBYTE)szKeyValue,&dwSize);
if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_sCPUIdentifier=szKeyValue; };
memset(szKeyValue,0,100); dwType=REG_SZ; dwSize=100;
lresult=RegQueryValueEx(NewKey,_T("VendorIdentifier"),NULL,
&dwType,(LPBYTE)szKeyValue,&dwSize);
if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_sCPUVendorIdentifier=szKeyValue; };
memset(szKeyValue,0,100); dwType=REG_SZ; dwSize=100;
lresult=RegQueryValueEx(NewKey,_T("ProcessorNameString"),
NULL,&dwType,(LPBYTE)szKeyValue,&dwSize);
if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_sCPUNameString=szKeyValue; };
DWORD dwData=0; dwType=REG_DWORD; dwSize=sizeof(dwData);
lresult=RegQueryValueEx(NewKey,_T("~MHz"),NULL,
&dwType,(LPBYTE)(&dwData),&dwSize);
if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_dwCPUSpeed=dwData; };
RegCloseKey(NewKey);
return szKeyValue;
}
CString CSystemLocalInfo::DetectMemoryType()
{
// TODO: Add extra initialization here
MEMORYSTATUS Mem;
// get the memory status
GlobalMemoryStatus(&Mem);
// set the total memory
this->m_TotMem=(DWORD)Mem.dwTotalPhys/(1024*1024);
this->m_TotVirtMem=(DWORD)Mem.dwTotalVirtual/(1024*1024);
CString Msg;
Msg.Format("物理内存: %ld MB : 虚拟内存: %ld MB",
this->m_TotMem,this->m_TotVirtMem);
return Msg;
}
网上找的,你可以试试。
顺便鄙视一下yfhhappy989898
不想回答就不要回答,骂人干什么