Codigo en VB cadana de codigos a ascii y algoritmo para botón (visual studio)

Iniciado por hainner, 11 Junio 2011, 20:55 PM

0 Miembros y 1 Visitante están viendo este tema.

hainner

Saludos,
Ayuda con código...

He creado un keygen para una aplicación desde un archivo Excel con macros de VB (.xlsm)

Deseo crearlo totalmente en VB .net pero tengo dificultades pues con ignoro que estoy haciendo mal para pasar la cadena de caracteres, que se ingresa en el primer TexBox , a valores ascii y luego sumar los mismos dando clic en un botón.
Dejo el link de los archivos de Excel con las macros en VB

Solicitar link, (pues se ha difundido para fines no didácticos)

Gracias,

raul338

1º Deberias plantear tu duda en el foro de .net

2º No se hacen tareas, intenta hacerlo tu mismo y nostros te ayudaremos ante dudas especificas

[D4N93R]


43H4FH44H45H4CH49H56H45H

Cita de: hainner en 11 Junio 2011, 20:55 PM
Saludos,
Ayuda con código...

He creado un keygen para una aplicación desde un archivo Excel con macros de VB (.xlsm)

Deseo crearlo totalmente en VB .net pero tengo dificultades pues con ignoro que estoy haciendo mal para pasar la cadena de caracteres, que se ingresa en el primer TexBox , a valores ascii y luego sumar los mismos dando clic en un botón.
Dejo el link de los archivos de Excel con las macros en VB

http://www.megaupload.com/?d=LUYN8ONB

Gracias,


De pasadita y para que lo mejores:

Código (vbnet) [Seleccionar]
Imports System.Text

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim temp As String = Replace(TextBox1.Text, "-", vbNullString, 1, TextBox1.Text.Length)
        MsgBox(sumAscii(temp.Trim()))
    End Sub
    Public Function sumAscii(ByVal texto As String) As String
        Dim ascii As Encoding = Encoding.ASCII
        Dim suma As Integer = 0
        Dim txtBytes As [Byte]() = ascii.GetBytes(texto)
        Dim b As [Byte]
        For Each b In txtBytes
            suma += b
        Next b
        sumAscii = suma.ToString()
    End Function
End Class


Este codigo ignora los "-" y " " para sumar los valores ascii de cada caracter del textbox.
Saluos.

PD: Para hacer un keygen es mejor si utilizas un lenguaje que no necesite un framework como es el caso de vb.net, podrias hacerlo en C++ (consola, vc++  o c++ con QT) o en ultimo caso con vb6.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

hainner

Saludos, 43H4FH44H45H4CH49H56H45H
Agradecido por su respuesta y colaboración, agregando las el código sugerido al proyecto

PD. Creo que en vez de un MsgBox el resultado estaría en eventual TextBox3.
Me colaboraría estoy además trabajando en la generación, para el TextBox2, de varios números de licencias de los cuales tengo una regularidad.

Link del instalador: http://www.megaupload.com/?d=CVEZBS52

Gracias por mantener correspondencia y colaborarme.

43H4FH44H45H4CH49H56H45H

Cita de: hainner en 15 Junio 2011, 08:55 AMPD. Creo que en vez de un MsgBox el resultado estaría en eventual TextBox3.

Lo que puse fue solo un ejemplo, tu puedes modificarlo como gustes  :P

Cita de: hainner en 15 Junio 2011, 08:55 AMEl 1733 es la suma de los valores ascii de los caracteres ya convertidos del TexBox2 y se tomara como constante, pero falta en esta última operación tomar los valores numéricos de la división realizada sin el punto decimal y anteponerle a esa cadena de numeros el 99 para generar lo esperado.

Segun lo que entiendo puedes utilizar Split y luego unir el 99 en un string con el resultado.

Saluos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

hainner

Saludos, 43H4FH44H45H4CH49H56H45H

Agradecido por su respuesta

Cita de: 43H4FH44H45H4CH49H56H45H en 16 Junio 2011, 15:09 PM
Segun lo que entiendo puedes utilizar Split y luego unir el 99 en un string con el resultado

Ok, utilizo una tabla dinámica (un array dinámico) llamado tabla; la variable se define como tabla(),pero que no sabemos su longitud. Luego, le paso el split, cortando la cadena por el "punto". Con esto, se escribirá en cada celda que necesite de la variable tabla cada uno de los valores cortando por el "punto"; en la celda 0 tendremos "la parte entera", en la celda 1 tendremos "la parte decimal". Por último, utilizando ubound(tabla,1) sabemos qué número de celdas tiene esta tabla.

Código (vbnet) [Seleccionar]

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       Dim temp As String = Replace(TextBox1.Text, "-", vbNullString, 1, TextBox1.Text.Length)
       'Aqui atendiendo a lo sugerido
       Dim cadena As String
       Dim tabla() As String
       Dim n As Integer
       cadena = Val(sumAscii(temp.Trim()))
       tabla = Split(cadena, ".")
       For n = 0 To UBound(tabla, 1)
       Next
       TextBox3.Text = "99" & tabla(0) & tabla(1)
       'Recomendaciones
   End Sub


Agradeciendo recomendaciones al anterior.

Hainner