Hola

22/09/2006 - 03:41 por Aldo | Informe spam
Como puedo averiguar el nro. de serie fisico del disco rigido?
Gracias

Preguntas similare

Leer las respuestas

#1 floyd303
22/09/2006 - 11:21 | Informe spam
Hola!

Mira el siguiente enlace:

http://www.eggheadcafe.com/articles/20021019.asp

Ahora si estas pensando en utilizarlo como sistema de proteccion
antipirateria de software te prevengo que no es nada efectivo por si
solo.
Es muy facil cambiar. Con un Ghost haces una copia exacta y formateando
es muy facil poner el que quieres.

Espero que te ayude
Saludos
Roberto M. Oliva

Aldo ha escrito:

Como puedo averiguar el nro. de serie fisico del disco rigido?
Gracias
Respuesta Responder a este mensaje
#2 Aldo
23/09/2006 - 00:10 | Informe spam
Gracias Roberto por la ayuda, es justamente lo que quiero (que no me copien
el sistema).
Ahora si me decis que no es efectivo, que crees que es conveniente para
hacerlo.
Gracias


escribió en el mensaje
news:

Hola!

Mira el siguiente enlace:

http://www.eggheadcafe.com/articles/20021019.asp

Ahora si estas pensando en utilizarlo como sistema de proteccion
antipirateria de software te prevengo que no es nada efectivo por si
solo.
Es muy facil cambiar. Con un Ghost haces una copia exacta y formateando
es muy facil poner el que quieres.

Espero que te ayude
Saludos
Roberto M. Oliva

Aldo ha escrito:

Como puedo averiguar el nro. de serie fisico del disco rigido?
Gracias



Respuesta Responder a este mensaje
#3 SoftJaén
23/09/2006 - 11:27 | Informe spam
"Aldo" escribió:

Ahora si me decis que no es efectivo, que crees que es conveniente para
hacerlo.



Hola, Aldo:

El ejemplo que te ha indicado Roberto, no es efectivo porque utiliza la
función API «GetVolumeInformation», y por tanto, cada vez que se formatee
una unidad de disco, se le asignará una nueva etiqueta y un nuevo número de
serie a la unidad.

Lo que debes de hacer es averiguar lo que exactamente preguntabas en tu
primer mensaje: el número de serie real del disco duro, el que viene de
fábrica, que ese número, por mucho que se formatee la unidad, siempre es el
mismo. :-)

Si no deseas utilizar los servicios de «Windows Management Instrumentation»,
tendrás que recurrir a funciones de la propia API de Windows.

En el siguiente enlace encontrarás el código fuente necesario para leer el
número de serie del disco duro. Lo malo es que lo tendrás que adaptar a
Visual Basic .net, ya que el mismo está escrito para ejecutarlo con Visual
Basic clásico:

DeviceIoControl: Get a SMART Drive Serial Number
http://vbnet.mvps.org/index.html?co...artide.htm

Te advierto, que el código fuente, tal y como aparece en el ejemplo, es para
ejecutarlo en sistemas operativos basados en Windows NT, y la cuenta de
usuario deberá pertenecer al grupo Administradores, o bien, disponer de los
preceptivos permisos para leer el número de serie, cuestión ésta que creo
está bastante clara, y no merece ningún comentario. :-)

Si el sistema operativo es Windows 9x o Me, en principio deberás de
averiguar si se encuentra instalado el driver «smartvsd.vxd» en la carpeta
%windows%\system\iosubsys. Si no se encuentra, en la misma página del
ejemplo que te he indicado, hay un enlace para que lo puedas descargar e
instalar, concretamente en el apartado «Note for w95/98 users from the code
author».

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 SoftJaén
23/09/2006 - 17:33 | Informe spam
Como continuación a mi anterior mensaje, mejor será que utilices los
servicios «Windows Management Instrumentation», los cuales se encuentran
representados en el marco de trabajo de .net por la clase
«ManagementObject», dentro del espacio de nombres «System.Management».

Agrega a tu proyecto una referencia al componente .net «System.Management»,
y ejecuta algo parecido a lo siguiente:

Dim disco As New _
System.Management.ManagementObject( _
"Win32_PhysicalMedia='\\.\PHYSICALDRIVE0'")

Try
MessageBox.Show(disco.Properties("SerialNumber").Value.ToString, _
"Número de Serie", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)

Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

Como podrás observar, éste código es mucho más fácil de "digerir", que el
código que aparece en el ejemplo que te he comentado en mi anterior mensaje.
¡Hasta los médicos lo "recomiendan", para que el programador pueda continuar
con un estado mental medio aceptable! :-)

Por supuesto, el usuario que ejecute el código, deberá tener permisos de
Administrador; no es suficiente con pertenecer al grupo de Usuarios
Avanzados, y menos aún, al de Usuarios normales y corrientes.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#5 Aldo
25/09/2006 - 04:19 | Informe spam
Gracias Enrique.

"SoftJaén" escribió en el mensaje
news:
Como continuación a mi anterior mensaje, mejor será que utilices los
servicios «Windows Management Instrumentation», los cuales se encuentran
representados en el marco de trabajo de .net por la clase
«ManagementObject», dentro del espacio de nombres «System.Management».

Agrega a tu proyecto una referencia al componente .net
«System.Management»,
y ejecuta algo parecido a lo siguiente:

Dim disco As New _
System.Management.ManagementObject( _
"Win32_PhysicalMedia='\\.\PHYSICALDRIVE0'")

Try
MessageBox.Show(disco.Properties("SerialNumber").Value.ToString, _
"Número de Serie", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)

Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

Como podrás observar, éste código es mucho más fácil de "digerir", que el
código que aparece en el ejemplo que te he comentado en mi anterior
mensaje.
¡Hasta los médicos lo "recomiendan", para que el programador pueda
continuar
con un estado mental medio aceptable! :-)

Por supuesto, el usuario que ejecute el código, deberá tener permisos de
Administrador; no es suficiente con pertenecer al grupo de Usuarios
Avanzados, y menos aún, al de Usuarios normales y corrientes.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida