您的位置:首页 > 其它

获取系统信息学习

2013-08-27 20:40 113 查看
DWORD dwEAX = 0;
DWORD dwEBX = 0;
DWORD dwECX = 0;
DWORD dwEDX = 0;

// 获取CPUID0
_asm
{
mov eax, 0
cpuid
mov dwEAX, eax
mov dwEBX, ebx
mov dwECX, ecx
mov dwEDX, edx
}

printf("CPUID0:\r\nEAX = %p\r\n"
"EBX = %p\r\n"
"ECX = %p\r\n"
"EDX = %p\r\n",
dwEAX, dwEBX, dwECX, dwEDX);

puts("");

// 获取CPUID1
_asm
{
mov eax, 1
cpuid
mov dwEAX, eax
mov dwEBX, ebx
mov dwECX, ecx
mov dwEDX, edx
}

printf("CPUID1:\r\nEAX = %p\r\n"
"EBX = %p\r\n"
"ECX = %p\r\n"
"EDX = %p\r\n",
dwEAX, dwEBX, dwECX, dwEDX);

puts("");

// 参数1的结构体
PIP_ADAPTER_INFO tag_AdapterInfo = new IP_ADAPTER_INFO[sizeof(IP_ADAPTER_INFO)];
PIP_ADAPTER_INFO lpTemp = tag_AdapterInfo;

// 参数2的大小
ULONG lLen = sizeof(IP_ADAPTER_INFO);

GetAdaptersInfo(tag_AdapterInfo, &lLen);
GetAdaptersInfo(tag_AdapterInfo, &lLen);

// 循环获取机器上的所有网卡信息.
while(lpTemp)
{
printf("MAC: %02x-%02x-%02x-%02x-%02x-%02x\r\n",
lpTemp->Address[0],
lpTemp->Address[1],
lpTemp->Address[2],
lpTemp->Address[3],
lpTemp->Address[4],
lpTemp->Address[5]);

lpTemp = lpTemp->Next;
}

delete[] tag_AdapterInfo;

puts("");

/*
LONG RegOpenKeyEx(
HKEY hKey,         // handle to open key
LPCTSTR lpSubKey,  // subkey name
DWORD ulOptions,   // reserved
REGSAM samDesired, // security access mask
PHKEY phkResult    // handle to open key
);

*/

HKEY hKey = NULL;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\", 0, KEY_ALL_ACCESS, &hKey);

/*
LONG RegQueryValueEx(
HKEY hKey,            // handle to key
LPCTSTR lpValueName,  // value name
LPDWORD lpReserved,   // reserved
LPDWORD lpType,       // type buffer
LPBYTE lpData,        // data buffer
LPDWORD lpcbData      // size of data buffer
);
*/

DWORD dwType = 0;
BYTE szKeyValue[MAXBYTE] = {0};
DWORD dwKeyValueLen = sizeof(szKeyValue);

RegQueryValueEx(hKey, "SystemBiosVersion", NULL, &dwType, szKeyValue, &dwKeyValueLen);

printf("Bios: %s", szKeyValue);

puts("");

system("pause");

return 0;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: