VC怎么获取硬件ID,CPU,硬件,网卡等
VC如何获取硬件ID,CPU,硬件,网卡等
VC如何获取硬件ID,CPU,硬件,网卡等
------解决方案--------------------
参考这个:http://topic.csdn.net/t/20041009/13/3437016.html
------解决方案--------------------
http://download.csdn.net/source/1118204
很早以前整理的,可能有些不是很正确了!含有源代码,已经做成一个DLL了,大家可以根据需要自己修改源码使用!免费、开源、绿色!
含 cpu 主板 硬盘 网卡 BIOS等序列号取得 另外有加密解密的函数
------解决方案--------------------
VC如何获取硬件ID,CPU,硬件,网卡等
------解决方案--------------------
参考这个:http://topic.csdn.net/t/20041009/13/3437016.html
------解决方案--------------------
http://download.csdn.net/source/1118204
很早以前整理的,可能有些不是很正确了!含有源代码,已经做成一个DLL了,大家可以根据需要自己修改源码使用!免费、开源、绿色!
含 cpu 主板 硬盘 网卡 BIOS等序列号取得 另外有加密解密的函数
------解决方案--------------------
- C/C++ code
CString GetMacAddress() /* * 通过WMI取第一块活动网卡地址,事先需要调用过CoInitialize()初始化COM */ { HRESULT hRes; hRes = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL); if (FAILED(hRes)) return _T(""); IWbemLocator *pLoc = NULL; hRes = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID*)&pLoc); if (FAILED(hRes)) return _T(""); IWbemServices *pSvc = NULL; hRes = pLoc->ConnectServer(_bstr_t(L"ROOT\\CIMV2"), NULL, NULL, 0, NULL, 0, 0, &pSvc); if (FAILED(hRes)) { pLoc->Release(); return _T(""); } hRes = CoSetProxyBlanket(pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_DEFAULT); if (FAILED(hRes)) { pSvc->Release(); pLoc->Release(); return _T(""); } IEnumWbemClassObject* pEnumerator = NULL; hRes = pSvc->ExecQuery(_bstr_t(L"WQL"), _bstr_t(L"SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); if (FAILED(hRes)) { pSvc->Release(); pLoc->Release(); return _T(""); } CString szMacAddress = _T(""); while (true) { IWbemClassObject *pclsObj = NULL; ULONG uReturn = 0; hRes = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); if (FAILED(hRes) || !uReturn) break; VARIANT vtProp; VariantInit(&vtProp); if (SUCCEEDED(pclsObj->Get(L"MACAddress", 0, &vtProp, 0, 0))) { if (V_VT(&vtProp) == VT_BSTR) { szMacAddress = vtProp.bstrVal; VariantClear(&vtProp); pclsObj->Release(); break; } VariantClear(&vtProp); } pclsObj->Release(); } pEnumerator->Release(); pSvc->Release(); pLoc->Release(); return szMacAddress; }
------解决方案--------------------
奥,那个DLL大概在02年左右整理的好像,时间太久了,应该是不支持vsita的,楼主看看这段代码是否有用?我是拷贝来的:
/************************************************************
//函数名称:GetDriverInfomation
//函数功能:得到驱动器的信息
//参数1:bAlpha - BYTE型,驱动器的代号A-Z(a-z)
//参数2:iGTI_TYPE - int,将要获取的驱动器信息类型
// GDI_VOLUMENAME 得到驱动器名字
// GDI_VOLUMESERIALNUMBER 得到驱动器序列号
// GDI_VOLUMEFILESYSTEM 得到驱动器文件系统
// GDI_VOLUMETYPE 得到驱动器类型
// GDI_VOLUMESIZE 得到驱动器总大小
// GDI_VOLUMEFREESIZE 得到驱动器剩余大小
//返回值:CString型,所要得到的驱动器信息的字符串表达
//例子:得到C盘的名字GetDriverInfomation('C',GDI_VOLUMENAME)
************************************************************/
#define GDI_VOLUMENAME 0
#define GDI_VOLUMESERIALNUMBER 1
#define GDI_VOLUMEFILESYSTEM 2
#define GDI_VOLUMETYPE 3
#define GDI_VOLUMESIZE 4
#define GDI_VOLUMEFREESIZE 5
CString GetDriverInfomation(BYTE bAlpha,int iGTI_TYPE)
{
CString strResult = _T("");