es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

A veces, en C#, el ID de la CPU es una cadena de ceros y también el ID de la placa base es una cadena vacía.

Tengo un software instalado en las PC de mis clientes y les doy la clave de licencia según el ID de su CPU e ID de la placa madre.
Este código funciona correctamente en la mayoría de las PC, pero a veces devuelve un valor incorrecto para la CPU o la placa madre, por ejemplo:

ID de CPU = “0000000000000000”

Placa madre = “” // cadena vacía

string results = string.Empty;
string cpuID = string.Empty;

ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)
{
cpuID += mo.Properties["processorID"].Value.ToString();
}

results += cpuID;

//obtener ID de la placa madre:
string mbID = string.Empty;

string query = "SELECT * FROM Win32_BaseBoard";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject info in searcher.Get())
{
mbID += info.GetPropertyValue("SerialNumber").ToString();
}

results += "\r\n" + mbID;

return results;

Estoy en una situación difícil porque este problema es raro, hice alrededor de 100 licencias y esto solo sucedió 5 veces, ocurrió en la PC de un cliente no en mi PC, por lo que probar un nuevo código es realmente difícil.
¿Alguna idea por favor? ¿O alguien sabe cuál es la posible razón?
Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI con experiencia en C#, CPU y placa base, el problema podría estar en las clases ManagementClass o ManagementObjectSearcher que se utilizan para recuperar los identificadores de CPU y placa base. Estas clases dependen del servicio Windows Management Instrumentation (WMI), que a veces puede devolver información incorrecta o incompleta.

    Una posible solución es intentar utilizar un método diferente para recuperar los identificadores de la CPU y la placa base, como la consulta del registro o el uso de una biblioteca de terceros. Otra opción es comprobar el valor del ID devuelto para asegurarse de que no es una cadena vacía o un valor por defecto.

    También es importante asegurarse de que el generador de claves de licencia utilice los identificadores de CPU y placa base correctos en el orden correcto para generar la clave de licencia. Cualquier discrepancia en el orden o formato puede hacer que la clave de licencia sea inválida.

    Por último, para evitar este tipo de problemas en el futuro, es recomendable probar el software en una amplia gama de configuraciones de hardware antes de lanzarlo a los clientes. Esto puede ayudar a identificar y resolver cualquier problema antes de que ocurra en el campo.

Comments are closed.