May 2007 - Artículos

Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

 Artículo :: Programación :: Visual Basic 2005

Creando claves de registro para nuestras aplicaciones .NET

Cuando nos decidimos instalar una aplicación Software (Adobe PhotoShop, Microsoft Office, Microsoft Windows, etc), nos obliga a escribir una clave de aplicación más conocida como Serial.

Incluso dependiendo de la clave introducida, se instalará un tipo de producto u otro. Este mecanismo es muy sencillo. El usuario introduce una clave y ésta se valida de acuerdo a una serie de normas o reglas que permiten determinar el tipo de licencia o clave introducida.

En este breve artículo, veremos como generar nuestra clave de registro para nuestras aplicaciones .NET.

En concreto, recogeremos la entrada del usuario (nombre de usuario por ejemplo), y a partir de él, generaremos la clave de aplicación que cumpla la máscara (xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx).

En el formulario, hemos insertado dos controles Label, dos controles TextBox y un control Button.

En tiempo de diseño, nuestro formulario de demostración y ejemplo, tendrá una apariencia parecida a la que se indica en la figura 1.

Figura 1

Ahora bien, la acción de generación de esta clave se hace realizando diferentes cálculos.

Estos cálculos pueden ser modificados como deseemos para generar los valores de clave finales.

El código de mi particular generador es el siguiente:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   
Try
      ' Si el texto de usuario tiene mde 1 caracter, entonces seguimos adelante
      If Me.TextBox1.Text.Trim.Length > 1 Then
         ' Pasamos a la funciel texto de usuario para generar su
         ' clave de usuario de aplicaci
         Me.TextBox2.Text = GenerarClave(Me.TextBox1.Text.Trim)
      
Else
         ' Mensaje de aviso de que el texto de usuario debe tener
         ' al menos dos caracteres
         MessageBox.Show("Debe introducir al menos dos caracteres")
      
End If
   Catch ex As Exception
      
' Mensaje de error en la generacide la clave de usuario
      MessageBox.Show("Se ha producido un error en la generacide la clave")
      
Me.TextBox2.Text = "Error"
   End Try
End
 Sub

Private
 Function GenerarClave(ByVal usuario As StringAs String
   ' Obtenemos la longitud de la cadena de usuario
   Dim longitud As Byte = usuario.Length
   
' Declaramos valorEntrada para obtener el valor general
   ' correspondiente a la entrada de usuario
   Dim valorEntrada As Long = 0
   
' Recorremos la cadena entera para sumar el valor
   ' total de sus cASCII
   For I As Byte = 0 To longitud - 1
      valorEntrada += Asc(usuario.Substring(I, 1))
   
Next
   ' Dividimos el valor final resultante de la suma de
   ' sus valores ASCII entre la longitud de la cadena
   valorEntrada \= longitud
   
' Obtenemos un valor base que corresponde con el
   ' cdel producto entre el valor de entrada 
   ' anteriormente calcula por su longitud
   Dim valorBase As Integer = valorEntrada * longitud
   
Dim key As String = ""
   ' Empezamos obteniento valores
   ' Obtenemos el valor hexadecimal
   Dim valor As String = Hex(valorBase + (123 * 10000))
   key &= valor.Substring(valor.Length - 6, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (98 * 12500))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(0, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (77 * 15000))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(valor.Length - 6, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (121 * 17500))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(0, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (55 * 20000))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(valor.Length - 6, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (134 * 22500))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(0, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (63 * 25000))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(valor.Length - 6, 6)
   
' Obtenemos el valor hexadecimal
   valor = Hex(valorBase + (117 * 27500))
   
' Obtenemos el valor de clave
   key &= "-" & valor.Substring(0, 6)
   
' Devolvemos el valor final (xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx)
   Return key
End Function

Este código de ejemplo, generará una clave tal y como se indica en la siguiente imagen.

Figura 2

Como podemos observar, la generación de claves de registro para nuestras aplicaciones .NET se pueden realizar de forma rápida y sencilla.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB

Lutz Roeder publica varios ejemplos de Silverlight 1.1 Alpha

El conocido Lutz Roeder (.NET Reflector entre otros), ha publicado varios ejemplos sobre el uso de Silverlight 1.1 Alpha.

Los ejemplos de Lutz, no es que sean la bomba respecto a la innovación tecnológica, pero sí en cuanto a lo que nos puede llegar a ofrecer Silverlight.

Yo os recomiendo descargar los ejemplos, probarlos e intentarlos... la verdad es que por algo se empieza ¿no creéis?.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB
Posted por Jorge Serrano con no comments
Archivado en: ,

Microsoft Silverlight 1.1 Alpha Developer Reference Poster

Microsoft ha publicado el póster de referencia de desarrolladores de Microsoft Silverlight 1.1.

El póster está en formato png y ocupa casi 1 Mb.

Aquí os dejo el enlace directo al póster.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB
Posted por Jorge Serrano con no comments
Archivado en: ,