CLR: .Net / Mono / Boo / Otros CLR > C#

 Añadir Un Numero De Licencia

(1/1)

Neopro:
Buenas, quiero poder agregarle u numero de licencia unico a un software, para que me deban pedir el numero para su uso. Y asi controlar eso.

Opciones:

Al hacer el proyecto para instalar, existe la posiblidad de colocar informacion de usuario y un numero de licencia, pero donde defino ese numero?.

O si quiero que mi aplicacion pida el numero de serie para poder ser usada al iniciarlo por primera vez y agregar una llave al registro u otra cosa para permitir el uso.

Como lo puedo realizar?.

mamex:
Que tal, mira yo hice algo así, lo que hago es que la primera vez que se abre el programa, pide los datos de registro, (nombre, empresa, no. de Serie), y éstos datos los guarda en el registro de windows. Y cada vez que se abre el programa, comprueba si éstos datos existen en el registro de windows, si existen, pues simplemente abre el programa, si no existen (se deduce que es la primera vez k se abrió) y pues se pide que se introduzcan los datos de registro.

Para registrar, te aparece un número de serie, y con ése número se genera otro (que es el que debes de escribir tú para que se te acepte).

Bueno, pero la cuestión es: ¿De dónde saco el no de Serie?. Pues yo hice un algoritmo sencillo para que apartir de una clave (el número que te aparece en el registro), te genere otra clave (es la que el usuario deberá escribir).

Ejemplo,   en la ventana de registro al usuario le aparecerá la clave  AB12C (por ejemplo),  entonces el te llama y te dá esa clave, entonces tu con tu algoritmo, le metes esa clave y te debe generar otra,  1423F por ejemplo, entonces tu le das esta al usuario, y el la introduce en el formulario de registro. Espero que me hayas entendido.

Adjunto la imagen del form. Cualquier cosa que no entiendas, aqui estamos para ayudarte.  :hola:

Neopro:
Genial, esa es mi idea. Pero sabes, esto me tiene chato, y tengo los numeros desde donde puedo obtener un numero para comprobarlo.

Pero me puedes enviar los codigos de como lo agregas en el registro y como lo verificas al inicio?...

Y una idea de la funcion para lograrlo.

Por favor.

Y otra cosa, sabes como crear por ultimo un acceso directo a un desinstalador???...

mamex:
Que tal, mira en realidad yo programo en visual basic 6, tengo mis codigos, pero no se si te puedan servir, en sí la idea, es que el número que te da la ventana de registro, es un número aleatorio, para ello ocupé este codigo.


--- Código: Text --- 'Genera la clave que le aparece al usuario k va a instalarPublic Function generaId() As String    Dim i As Integer    Dim id As String    id = ""    For i = 1 To 4        id = id & Format(Rand(0, 9999), "0000")        If i < 4 Then id = id + " - "    Next i    generaId = idEnd Function  
Ese es el número que te da el programa, cada vez que se abre el programa te dá un número distinto, ya que es aleatorio.

Ahora sólo tienes que hacer un algoritmo que éste numero aleatorio te lo convierta a otra clave, que será la que tengas que escribir manualmente. Por ejemplo, lo más sencillo es hacer, el recorrido de una letra o número del original. Ejemplo:    si la ventana te da la clave 23D, la clave que le corresponde es  34E, porque en cada digito se recorrió un caracter.

Yo ocupé otra función, pero está algo larga y hecha en vb.

Para leer y escribir en el registro de windows usé éstas funciones, te repito en Visual basic.


--- Código: Text --- 'Escribe un valor en el registro de windowsPublic Sub escribirRegistro(direccion As String, Llave As String, datos As String, Optional tipo As String)    Dim Registro As Object    'Crea el objeto manejador del registro    Set Registro = CreateObject("WScript.Shell")    If tipo <> "" Then        Registro.RegWrite direccion & "\" & Llave, datos, tipo    Else        Registro.RegWrite direccion & "\" & Llave, datos    End If    Set Registro = NothingEnd Sub 'Lee un valor del registro de windowsPublic Function leerRegistro(direccion As String, Llave As String) As String    On Error GoTo mError    Dim Registro As Object    'Crea el objeto manejador del registro    Set Registro = CreateObject("WScript.Shell")    leerRegistro = Registro.regread(direccion & "\" & Llave)    Set Registro = Nothing    Exit FunctionmError:    If Err.Number = -2147024894 Then leerRegistro = ""End Function  
Si gustas agregame al msn.

Neopro:
Muchisimas gracias por Toda Tu ayuda...

 :smartass:

Navegación

[0] Índice de Mensajes

Ir a la versión completa