Quisiera distribuir mi primera aplicación, poniéndole un poco de seguridad para evitar que el cliente pueda instalarla en más de un equipo o lo copie. Se que nada es infalible, solo que les cueste trabajo. ¿Cómo hago ésto? Acepto sugerencias.
1 Respuesta
Respuesta de leosoft
1
1
leosoft, Programacion Avanzada en VisualBasic, trabajo hace mas de 15 años...
Distribuir una aplicación y esperar que no te la copien es algo imposible, si quieres que tu aplicación se ejecute en una maquina sola, o vos determinar en que maquina va a funcionar, tienes que utilizar el método de registro. Te doy un ejemplo: Entregas tu aplicación, la primera vez que se ejecuta, luego de ser instalada, le muestra al usuario un numero de registro, el usuario te envía ese numero de registro con sus datos presonales, y vos si es un usuario reconocido (si pago el software), le envías el archivo llave. De esa manera el programa funciona. El truco esta en que el numero de registro que te envía el cliente lo determinas por el numero de serie de la maquian en la que quieren instalar el software, esto lo ves con una función simple por API: Declara esto en un modulo Public Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long Public Function PROTECCION() Dim R, N, F, Z As String Dim s, SS, vv As Long R = Left(App.Path, 3) N = Space$(3) F = Space$(255) GetVolumeInformation R, N, s, vv, 255, 0, F, SS PROTECCION = vv End Function Ahora en el programa tendrías que hacer lo siguiente: en el evento Load del form principal tendrias que intentar leer el archivo(por ejemplo LLAVE. KEY) que seria el archivo llave, si este no esta, significa que es la primera vez que se ejecuta, entonces tienes que leer el numero de serie de la maquina con esta instrucción: numerodeserie = PROTECCION Le pedís al usuario que te envíe ese numero, y vos al recivirlo lo codificas con algún algoritmo propio, inventalo vos para más seguridad, (pero si quieres te puedo dar algunas ideas), luego le entregas al cliente el archivo LLAVE. KEY con el numero codificado, y en la próxima vez que el programa se ejecute, como el archivo existe, va a comparar el numero del archivo LLAVE. KEY, previmente decodificado con el mismo método, con el numero de serie de la maquina, si coincide, continua con su ejecución, de lo contrario, solo sale. Con esto te aseguras que tu programa funcione solo en una maquina, fíjate que en archivo de llave, como esta relacionado con el numero de la maquina, no sirve para otra maquina. Cualquier duda estoy a tu disposición.