Para obtener el numero serial del disco duro debes usa rla propiedad SerialNumber de la clase
Win32_DiskDrive
Aqui tienes un ejemplo
Código Delphi
[-]#pragma hdrstop
#include
using namespace std;
#include
#include
#define CRED_MAX_USERNAME_LENGTH 513
#define CRED_MAX_CREDENTIAL_BLOB_SIZE 512
#define CREDUI_MAX_USERNAME_LENGTH CRED_MAX_USERNAME_LENGTH
#define CREDUI_MAX_PASSWORD_LENGTH (CRED_MAX_CREDENTIAL_BLOB_SIZE / 2)
#pragma argsused
int main(int argc, char* argv[])
if (localconn)
hres = CoInitializeSecurity(
NULL,
-1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL );
else
hres = CoInitializeSecurity(
NULL,
-1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IDENTIFY, NULL, EOAC_NONE, NULL );
if (FAILED(hres))
IWbemLocator *pLoc = NULL;
hres = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc);
if (FAILED(hres))
IWbemServices *pSvc = NULL;
if (localconn)
hres = pLoc->ConnectServer(
strNetworkResource, NULL, NULL, 0, NULL, 0, 0, &pSvc );
else
hres = pLoc->ConnectServer(
strNetworkResource, pszName, pszPwd, NULL, NULL, NULL, NULL, &pSvc );
if (FAILED(hres))
cout << "Connected to root\\CIMV2 WMI namespace" << endl;
if (localconn)
hres = CoSetProxyBlanket(
pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE );
else
if (FAILED(hres))
IEnumWbemClassObject* pEnumerator = NULL;
hres = pSvc->ExecQuery( L"WQL", L"SELECT * FROM Win32_DiskDrive",
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator);
if (FAILED(hres))
if (!localconn)
}
IWbemClassObject *pclsObj = NULL;
ULONG uReturn = 0;
while (pEnumerator)
VariantClear(&vtProp);
pclsObj->Release();
pclsObj=NULL;
}
pSvc->Release();
pLoc->Release();
pEnumerator->Release();
if (pclsObj!=NULL)
pclsObj->Release();
CoUninitialize();
cout << "press enter to exit" << endl;
cin.get();
return 0; }
Como ayuda puedes utilizar la herramienta
WMI Delphi Code Creator que puede generar codigo compatible con C++ builder 6.