Red de conocimiento informático - Material del sitio web - Cómo utilizar el número de serie del volumen del disco duro para generar un código de registro de software

Cómo utilizar el número de serie del volumen del disco duro para generar un código de registro de software

En otras palabras, ¡un código de registro sólo se puede utilizar en un disco duro!

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

…………

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.