Código:
Public Function ProcessorID()
Dim cpuInfo As String = String.Empty
Dim temp As String = String.Empty
Dim mc As ManagementClass = New ManagementClass("Win32_Processor")
Dim moc As ManagementObjectCollection = mc.GetInstances
For Each mo As ManagementObject In moc
If (cpuInfo = String.Empty) Then
cpuInfo = mo.Properties("ProcessorId").Value.ToString
ProcessorID = cpuInfo
Exit Function
End If
Next
ProcessorID = cpuInfo
End Function
Buscando por internet encontre esto:
Código:
void getPSN(char *PSN)
{
int varEAX, varEBX, varECX, varEDX;
char str[9];
//%eax=1 gives most significant 32 bits in eax
__asm__ __volatile__ ("cpuid" : "=a" (varEAX), "=b" (varEBX), "=c" (varECX), "=d" (varEDX) : "a" (1));
sprintf(str, "%08X", varEAX); //i.e. XXXX-XXXX-xxxx-xxxx-xxxx-xxxx
sprintf(PSN, "%C%C%C%C-%C%C%C%C", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
//%eax=3 gives least significant 64 bits in edx and ecx [if PN is enabled]
__asm__ __volatile__ ("cpuid" : "=a" (varEAX), "=b" (varEBX), "=c" (varECX), "=d" (varEDX) : "a" (3));
sprintf(str, "%08X", varEDX); //i.e. xxxx-xxxx-XXXX-XXXX-xxxx-xxxx
sprintf(PSN, "%s-%C%C%C%C-%C%C%C%C", PSN, str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
sprintf(str, "%08X", varECX); //i.e. xxxx-xxxx-xxxx-xxxx-XXXX-XXXX
sprintf(PSN, "%s-%C%C%C%C-%C%C%C%C", PSN, str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
}
Pero solo me devuelve la última parte del ID... Tienen idea si hay alguna alternativa para C++ que haga lo mismo? Imagino que si pero no estoy buscando bien...
Desde ya gracias!
EDIT: Ya esta, toqueteando como buen novato despues de varios intentos, agregue este bloquesito:
Código:
__asm__ __volatile__ ("cpuid" : "=a" (varEAX), "=b" (varEBX), "=c" (varECX), "=d" (varEDX) : "a" (1));
sprintf(str, "%08X", varEDX); //i.e. XXXX-XXXX-xxxx-xxxx-xxxx-xxxx
sprintf(PSN, "%s-%C%C%C%C-%C%C%C%C", PSN,str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
Y me trajo la primer parte del ID, ahora lo reacomodo y listo...
No se lo que hice y tampoco quiero saber por ahora JAJAJA, no se nada de asm...
No mentira, si alguien tiene conocimiento, digame que hice.
Saludos y solucionado.