Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo obtiene VC el ID del hardware, la CPU, el hardware, la tarjeta de red, etc.?

¿Cómo obtiene VC el ID del hardware, la CPU, el hardware, la tarjeta de red, etc.?

¿CString? GetMacAddress()

/*

* Obtenga la dirección de la primera tarjeta de red activa a través de WMI y llame a CoInitialize() con anticipación para inicializar COM.

*/

{

¿RESULTADO? hRes

hRes? =?CoInitializeSecurity(NULL, -1,?NULL,?NULL,?RPC_C_AUTHN_LEVEL_DEFAULT

RPC_C_IMP_LEVEL_IMPERSONATE,?NULL,?EOAC_NONE,?NULL);

Si? (Falló (hRes))

¿Regresión? _ T(" ");

IWbemLocator? *pLoc? =?NULL

hRes? =?cocreate instancia(CLSID_WBEM locator, 0,?CLSCTX_INPROC_SERVER,?IID_iwbelocator,?(LPVOID *)&pLoc);

Si? (Falló (hRes))

¿Regresión? _ T(" ");

IWbemServices? *pSvc? =?NULL

hRes? =?pLoc-& gt;ConnectServer(_ bstr _ t(L " ROOT \ \ CIM v2)),?NULL,?NULL,?0,

NULL,?0,?0,?& amppSvc);

if?(fail(hRes))

{

pLoc->Release();

¿Regresar? _T(" ");

}

hRes? =?CoSetProxyBlanket(pSvc,?WINNT,?RPC_C_AUTHZ_NONE,

NULL,?RPC_C_AUTHN_LEVEL_CALL, ? RPC_C_IMP_LEVEL_IMPERSONATE, ? NULL, ? EOAC_DEFAULT);

si ? (falló(hRes))

pSvc->; /p>

Regresar? _ T(" ");

IEnumWbemClassObject* ?pEnumerator? =?NULL

hRes? =?pSvc->;ExecQuery(_bstr_t(L) "WQL)),?

_bstr_t(L"SELECT?*?¿Desde dónde?win32_NetworkAdapterConfiguration?Dónde?IPEnabled?=?true"),

WBEM_FLAG_FORWARD_ONLY? |?WBEM_FLAG_RETURN_IMMEDIATELY?

NULO,? & amppEnumerator);

¿Si? (fallido(hRes))

{

pSvc->publish();

pLoc->publish();

¿Devolver? _ T(" ");

}

CString? szMacDirección? =?_ T(" ");

¿Cuándo? (Correcto)

{

IWbemClassObject? *pclsObj? =?NULL

ULONGO? ¿Regresar? =?0;

hRes? =?pEnumerator->;Next(WBEM_INFINITE,?1,?&pclsObj,?&uReturn);

¿Si? (Fail(hRes)?||?!uReturn)

Romper;

¿Variante? vtProp

VariantInit(& vt prop);

¿Si? (Éxito(pclsObj->Get(L"MACAddress ",0,?& ampvtProp,?0,?0)))

{

¿Si? (V _ VT(&vtProp)?==?BSTR)

{

szMacAddress? =?vt prop .bstr val;

variante clear(& vt prop);

pclsObj->Release();

Break; >

}

variante clear(&vt prop);

}

pclsObj->release();

}

pEnumerator->;Publish();

pSvc->;Publish();

pLoc->Publish ();

¿Volver? szMacAddress

}

-Solución-Oh, esa DLL se compiló alrededor de 2002. Parece que ha pasado demasiado tiempo y no debería soportar vsita. ¿Podrías ver si este código es útil? Lo copié:/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *. -?Tipo de byte, código de controlador A-Z(a-z)//Parámetro 2: igti_type? -?Int, el tipo de información de la unidad que se obtendrá // ¿GDI_VOLUMENAME? Obtener el nombre de la unidad // ¿GDI_VOLUMESERIALNUMBER? Obtener el número de serie de la unidad /// ¿GDI_VOLUMEFILESYSTEM? Obtener el sistema de archivos de la unidad // ¿GDI_VOLUMETYPE? Obtener tipo de unidad // ¿GDI_VOLUMESIZE? Obtener el tamaño total de la unidad /// ¿GDI_VOLUMEFREESIZE? Obtenga el tamaño restante de la unidad //Valor de retorno: tipo CString y expresión de cadena de la información de la unidad que se obtendrá //Ejemplo: obtenga el nombre de la unidad C getdriverinformation ('c ',GDI_volumename)* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *. ¿GDI_VOLUMENAME? 0 #definir? ¿GDI_VOLUMESERIALNUMBER? 1#Definición? ¿GDI_VOLUMEFILESYSTEM? 2#Definición? ¿GDI_VOLUMETYPE? 3#Definición? ¿GDI_VOLUMESIZE? 4#Definición? ¿GDI_VOLUMEFREESIZE? ¿Cadena 5C? GetDriverInfomation(byte?balfa,int?iGTI_TYPE){CString? strResultado? =?_ T(" ");