Cómo obtener el número de serie de la CPU y del disco duro

In: General

7 may 2008

Más de una vez he necesitado obtener el número de serie del procesador para realizar sistemas de licencia para evitar pirateos o llevar seguimientos de uso en aplicaciones. He pasado un tiempo recopilando y leyendo información hasta conseguir hacer esta función en C# para incorporarla a mis aplicaciones, la dejo libremente a disposición de quien la quiera reutilizar.

public string GetCPUId(){    string cpuInfo = String.Empty;    string temp = String.Empty;    ManagementClass mc = new ManagementClass("Win32_Processor");    ManagementObjectCollection moc = mc.GetInstances();    foreach (ManagementObject mo in moc)    {        if ((cpuInfo == String.Empty))        {            cpuInfo = mo.Properties["ProcessorId"].Value.ToString();        }    }    return cpuInfo;}

Tambien he creado otra función para obtener el Serial del disco duro

public string GetHDSerial(){    ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"C:\"");    PropertyData diskPropertyA = disk.Properties["VolumeSerialNumber"];    return diskPropertyA.Value.ToString();}

9 Responses to Cómo obtener el número de serie de la CPU y del disco duro

Avatar

Anonymous

junio 27th, 2008 at 05:46

Muy buena estas 2 funciones, realmente me estan siendo muy utiles. Te hago una pregunta Julian, en el caso de que yo le vendo una Aplicacion a un cliente, pidiendole primero el numero de serie del HD y de la CPU, si el cliente me dice por ejemplo a los 15 dias, se me quemo el CPU, necesito que pases una nueva licencia… como hago para validar que la anterior ya no se usa mas???Muchas gracias. Maximiliano.

Avatar

JMB

junio 27th, 2008 at 09:29

Para esta situación yo contemplo dos soluciones:

- Sacar una nueva versión con ese número de serie desactivado. Si al consultar devuelve un número invalidado, no permitir la ejecución del programa.

- Consultar a un servidor si ese número de licencia es válido. Yo he empleado consultas HTTP a páginas web creadas por PHP donde le pasa el número de serie y si es válido, devuelve un 1.

Espero que te haya servido de ayuda, un saludo.

Avatar

kcram

junio 8th, 2010 at 18:58

una ayudita en esto es que soy nuevo,
ya aplique pero me salen estos errores:
—————————————————————————————
Error 1 No se puede encontrar el tipo o el nombre de espacio de nombres ‘ManagementClass’ (¿falta una directiva using o una referencia de ensamblado?)
Error 2 No se puede encontrar el tipo o el nombre de espacio de nombres ‘ManagementClass’ (¿falta una directiva using o una referencia de ensamblado?)
Error 3 No se puede encontrar el tipo o el nombre de espacio de nombres ‘ManagementObjectCollection’ (¿falta una directiva using o una referencia de ensamblado?)
Error 4 No se puede encontrar el tipo o el nombre de espacio de nombres ‘ManagementObject’ (¿falta una directiva using o una referencia de ensamblado?)
Error 5 No se puede encontrar el tipo o el nombre de espacio de nombres ‘ManagementObject’ (¿falta una directiva using o una referencia de ensamblado?)
Error 6 No se puede encontrar el tipo o el nombre de espacio de nombres ‘ManagementObject’ (¿falta una directiva using o una referencia de ensamblado?)
Error 7 No se puede encontrar el tipo o el nombre de espacio de nombres ‘PropertyData’ (¿falta una directiva using o una referencia de ensamblado?)
—————————————————————————————
que librerias debo utilizar o que rayos me falta pa que funque
gracias

Avatar

kcram

junio 8th, 2010 at 18:59

perdon me olvide: estoy con c#.net 2008

Avatar

Algoritma.cl

julio 27th, 2010 at 20:12

Es simple resolver el asunto:
Basta con ir a exploirador de soluciones de tu Studio 2008 o 2010, hacer clik derecho en “References”, despues clikea la pestaña “.NET” y agregas la “System.Management” y aceptas.

eso es todo

PDT: agrega tambien System.Management a tu proyecto en el “using”.
Saludos.

Avatar

Jae

octubre 13th, 2010 at 20:10

Muchas gracias, me ha sido de extrema utilidad..8)

Avatar

Israel

octubre 15th, 2011 at 09:25

Muchas gracias Julian por tu aportación me será realmente útil.
Saludos

Avatar

Juan Sosa

noviembre 11th, 2011 at 11:13

Muchas gracias, lo he probado y funciona perfectamente. Me ha sido de mucha utilidad. Un saludo y gracias de nuevo.

Avatar

Touzas

enero 10th, 2012 at 12:56

Este numero de serie es el del volumen no el del disco, me refiero el del fabricante.
:( ((

Comment Form

Sobre mí

Mi foto

Mi nombre es Julián Moreno Beltrán. Soy emprendedor de las tecnologías de la información y comunicaciones. Me considero ciudadano del mundo al vivir en varias ciudades del mundo, en especial Londres donde me titulé como Software Engineer. Trabajador incansable, amante de los gadgets y enamorado del mar.

Mi perfil en LinkedIn

Julián Moreno Beltrán

Sígueme en tumblr

Vida de JulianMB en Tumblr

Sigueme en Facebook



Sígueme en Twitter

  • Touzas: Este numero de serie es el del volumen no el del disco, me refiero el del fabricante. :((( [...]
  • Juan Sosa: Muchas gracias, lo he probado y funciona perfectamente. Me ha sido de mucha utilidad. Un saludo y gr [...]
  • Israel: Muchas gracias Julian por tu aportación me será realmente útil. Saludos [...]
  • Antonio Marquez: Hola, baje lavaplicacion para usarlapero no me marca un error quebdice que evnumero no es el valido. [...]
  • murcia: Una pregunta importante de muchisimos usuarios interesados. ¿ Hay alguna forma de que en el pres [...]

Noticias por email

Enter your email address:

Delivered by FeedBurner