Cómo utilizar el número de serie del volumen del disco duro para generar un código de registro de software
También son posibles otros métodos, siempre que un código de registro solo pueda ser correcto en una máquina y se necesite otro código de registro para obtener otro.
Utilice la función "GetVolumeInformation" en la API para extraer el número de serie del disco duro de la máquina del usuario como código de función. Envíe este código durante el registro y proporcione el código de registro mediante la operación de los derechos de autor del software. dueño. Finalmente, el usuario del software ingresa el código de registro para completar todo el proceso de registro (para simplificar la explicación, el código de registro en este ejemplo es el código de característica menos 101).
Cree un nuevo archivo de módulo
Cree un nuevo archivo de módulo y agregue las siguientes declaraciones y constantes al módulo 1. Bas:
Declarar la función GetVolumeInformation Lib "kernel 32" alias "GetVolumeInformationA"
(ByVal lpRootPathName es una cadena, ByVal lpVolumeNameBuffer es una cadena, ByVal
nVolumeNameSize es largo, lpVolumeSerialNumber es largo, lpMaximumComponentLength es
largo, lpFileSystemFlags es largo, ByVal lpFileSystemNameBuffer es cadena, ByVal
nFileSystemNameSize tiene la misma longitud) tiene la misma longitud
Global GetVal As Long
Al programar, es importante escribir declaraciones de declaración en la misma línea.
Configuración del formulario
Agregue dos cuadros de texto a Form1 y establezca la propiedad Nombre en Texto1 y Texto2 respectivamente; agregue 1 botón y establezca la propiedad Nombre en Comando1.
Agregar código
Agregue el siguiente código de programa al evento Form1_load de Form1:
Private subform_Load()
Dim TempStr1 As String * 256
Atenuar TempStr2 como cadena * 256
Atenuar TempLon1 mientras
Atenuar TempLon2 mientras
………… p>
Mira la información sobre si registrarte o no. Aquí no se explica cómo controlarlo.
…………
Llame a GetVolumeInformation("C:\ ", TempStr1, 256, GetVal, TempLon1, TempLon2, TempStr2, 256)
Texto 1. 'Extraiga el número de serie de la unidad c local en el cuadro de texto 1.
Conector final
Agregue el siguiente código de programa al evento comando1_click de comando1:
Subcomando privado1_Click()
Si texto 2÷ CStr(GetVal), luego
MsgBox "El código de registro es incorrecto, verifique cuidadosamente si la entrada es correcta."
Otros
MsgBox "Tiene registrado exitosamente, reinicie este software."
…………
(Escriba la información de registro correcta para que las funciones del software no se vean restringidas en el futuro. El método específico es basado en la configuración de preferencias personales)
…………
Terminará si...
Finalizar conector
En este punto. , podemos ejecutar el programa. Verá que simplemente hemos implementado la función de utilizar el número de serie del disco duro para crear un software de registro electrónico.
GetVolumnInformation obtiene el nombre del volumen del disco duro en lugar del número de serie. Si se formatea el disco duro, el usuario ya no podrá usarlo porque la etiqueta del volumen ha cambiado.
Fuente: (/s/blog _ 470 ca 93 e 010008 bb . html) -Cómo generar un código de registro basado en el número de serie del disco duro_Linghu Shaoxia_Sina Blog
Función GetVolumeInformation De hecho, es posible obtener el número de serie de un disco, y este número de serie es fijo. Las siguientes son instrucciones y el uso específico se describe en "tanaya" (Crayon Shin-chan).
Menú Eliminar
Declarar función GetVolumeInformation Lib "kernel 32 "alias" GetVolumeInformation a "(ByVal lproot pathname es String, ByVal lpVolumeNameBuffer es String, ByVal nVolumeNameSize es Long, lpVolumeSerialNumber es Long, lpMaximumComponentLength es Long, lpFileSystemFlags es Long, ByVal lpFileSystemNameBuffer es String, ByVal nFileSystemNameSize es Long)
Explicación
Obtenga información sobre el volumen del disco.
Valor de retorno
Largo, distinto de cero significa éxito, cero significa fracaso. Establezca GetLastError
Lista de parámetros
Tipo y descripción de parámetro
Cadena LpRootPathName, la ruta raíz del volumen del que desea obtener información.
LpVolumeNameBuffer String, una cadena utilizada para cargar el nombre del volumen (etiqueta del volumen).
nVolumeNameSize Long, la longitud de la cadena lpVolumeNameBuffer.
LpVolumeSerialNumber Long, una variable utilizada para cargar el número de serie del volumen del disco.
LpMaximumComponentLength Long, especifica una variable para cargar la longitud de cada parte del nombre del archivo. Por ejemplo, en el caso de "C:\component1\component2.ext", indica la longitud del nombre del componente 1 o del componente 2.
LpFileSystemFlags Variable larga que se utiliza para cargar uno o más indicadores binarios. Estos indicadores se explican a continuación:
FS_CASE_IS_PRESERVED El caso de los nombres de archivos se registra en el sistema de archivos.
FS_CASE_SENSITIVELos nombres de los archivos distinguen entre mayúsculas y minúsculas.
El nombre del archivo FS_UNICODE_STORED_ON_DISK se guarda en formato UNICODE.
El sistema de archivos fs_persistent_ACLs admite mecanismos de seguridad de lista de control de acceso (ACL) para archivos.
El sistema de archivos FS_FILE_COMPRESSION admite la compresión de archivos archivo por archivo.
FS_VOL_IS_COMPRESSED comprime todo el volumen del disco.
LpFileSystemNameBuffer cadena, especifica el búfer utilizado para cargar los nombres del sistema de archivos (como FAT, NTFS, etc.).
nFileSystemNameSize Long, la longitud de la cadena lpFileSystemNameBuffer.
De hecho, es el número de serie del disco, no la identificación del disco. Un disco tiene una sola identificación hasta el final de su vida y hay muchos números de serie. Cada vez que formatea, se genera un nuevo número de serie. Si el disco duro está dividido en cuatro particiones, cada partición tiene un número de serie.