elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.  (Leído 2,462 veces)
CRAB

Desconectado Desconectado

Mensajes: 16


Ver Perfil
DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« en: 20 Julio 2005, 20:02 pm »

Hola gente:

Necesito saber unas cosillas:

1- Como puedo hacer que la tecla Alt esté pulsada todo el rato?

2- El programa que estoy haciendo es de criptografia por homofonía, y necesito dar tres valores distintos a cada letra, esos valores los pongo yo por defecto, pero el usuario debe de poder cambiarlos, como hago para que se puedan guardar, son aprox. unas 94 TextBoxs.

3- Mi tercera questión es que si yo tengo un TextBox con los números: 03 11 56, como puedo apretando un botón que se transformen en sus respectivas letras, he probado con case, pero solo me deja cambiar un número, es decir, si hay más de uno, no va.

Espero no haber causado muchos quebraderos de cabeza, muchas gracias, os espero...


En línea

_Sergi_


Desconectado Desconectado

Mensajes: 842



Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #1 en: 21 Julio 2005, 22:17 pm »

pues la verdad esque me he puesto loco para poderte responder a alguna de tus preguntas y me ha sido imposible  :(


creo recordar que un tal Guille, webmaster de una web con el mismo nombre, es considerado un experto en visual basic por muchos y que sin duda podría resolver tu problema.


espero haberte ayudado alguito  ;D


En línea

Proyecto de Ingeniero
Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #2 en: 22 Julio 2005, 01:29 am »

Citar
1- Como puedo hacer que la tecla Alt esté pulsada todo el rato?

Existe las funciones GetKeyboardState y SetKeyboardState que permiten obtener y cambiar el estado de todas las teclas, respectivamente.

A estas funciones se le debe pasar el primer elemento de una matriz de Byte de 256 elementos, lo que se puede hacer es primero obtener el estado actual de las teclas, y luego cambiar el estado de Alt (constante VK_MENU o código de caracter 18) para llamar a SetKeyboardState con el nuevo estado.

El código seria algo asi:

Código:
Option Explicit
Option Base 1

Public Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long

Public Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

Const VK_MENU = 18&

Sub SetAltKey()
     Dim btKeys(256) As Byte
     Dim r&

  r = GetKeyboardState(btKeys(1))

  If r Then
    btKeys(VK_MENU) = 1
    r = SetKeyboardState(btKeys(1))
  End If
End Sub

Y llamar a este procedimiento usando un control Timer con su propiedad Interval establecida a un valor bajo.


Citar
2- El programa que estoy haciendo es de criptografia por homofonía, y necesito dar tres valores distintos a cada letra, esos valores los pongo yo por defecto, pero el usuario debe de poder cambiarlos, como hago para que se puedan guardar, son aprox. unas 94 TextBoxs.

Podrias usar un archivo (instrucciones Open, Put, Get), el registro (si es algo global) o una base de datos, eso según cómo lo quieras usar.

Supongo que habras creado los 94 TextBox en tiempo de diseño, y eso es muy lento y hace que el ejecutable final sea grandisimo. Si me equivoco corregime. Sino la forma correcta de hacer esto es crear los cuadros de texto dinámicamente utilizando la función Load.

Para hacer esto se crea un TextBox, se establece su propiedad Index a 0 y luego cuando se carga el programa (evento Load del formulario) se crean los nuevos controles.

Por ejemplo:

Código:
Private Sub Form_Load()
       Dim i%

  For i = 1 To 94
    Call Load(txtData(i))
   
    txtData(i).Top = txtData(i - 1).Top + txtData(i - 1).Height + 25
    txtData(i).Visible = True
   
    txtData(i).TabIndex = i
  Next

End Sub

Entonces txtData(0) va a ser la letra A, txtData(1) la B y asi consecutivamente. Entonces para guardarlo en un archivo es sencillo, te muestro un ejemplo de como podrias hacer:

Código:
Sub SaveData()
        Dim i%, hFile%

  hFile = FreeFile
 
  Open "C:\Datos.txt" For Binary As #hFile
 
  For i = 0 To txtField.Count - 1
    Put #hFile, , CInt(txtData(i))
  Next
 
  Close #hFile
End Sub

Y para leer los datos es casi lo mismo, pero en lugar de escribirlos directamente en los TextBox los ponemos en una matriz (ver la tercera pregunta)

Código:

Public iCharData() As Integer

Sub LoadData()
        Dim i%, hFile%
        Dim iData%

  hFile = FreeFile
 
  Open "C:\Datos.txt" For Binary As #hFile
 
  For i = 1 To txtField.Count
    Get #hFile, , iData

    ReDim Preserve iCharData(i) As Integer
 
    iCharData(i) = iData
    txtData(i -1) = iCharData(i)
  Next
 
  Close #hFile
End Sub


Citar
3- Mi tercera questión es que si yo tengo un TextBox con los números: 03 11 56, como puedo apretando un botón que se transformen en sus respectivas letras, he probado con case, pero solo me deja cambiar un número, es decir, si hay más de uno, no va.

Una vez que leimos los datos del archivo en la matriz iCharData, entonces es muy sencillo buscar el valor y reemplazarlo por la letra. Por ejemplo:

Código:
Function CodeToChar(Code As Integer) As String
        Dim i%

  For i = 1 To UBound(Code)
    If Code = iCharData(i) Then
      'El 1 seria la A, el 2 la B, y asi sucesivamente.
      '
      CodeToChar = Chr$(i + vbKeyA - 1)
     
      Exit For
    End If
  Next
End Function

Bueno es sólo una idea simple, luego podrías hacerlo un poco más complejo.

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
el_chente23

Desconectado Desconectado

Mensajes: 142



Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #3 en: 22 Julio 2005, 20:01 pm »

¿Para que es el % en la declaracion de las variables?
En línea

Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #4 en: 22 Julio 2005, 23:30 pm »

Es lo mismo que poner As Integer. Hay un reemplazo para varios tipos de variables (las mas usadas)

Código:
Integer    %
Long       &
Single     !
Double     #
Currency   @
String     $

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
kakinets


Desconectado Desconectado

Mensajes: 414


[>Argentina<]


Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #5 en: 23 Julio 2005, 03:30 am »

Hola

La duca tres de Remplasar los numerps por letras lo podes sulucionar con la opsion Replace Ahi va el Code


Código:
Text1 = Replace(Text1, "("00 "AA")
Text1 = Replace(Text1, ")"53"VD")

Esto es un ejemplo para q veas como se utilisa la opsion...

Suerte Man...
En línea

CRAB

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #6 en: 23 Julio 2005, 13:35 pm »

Hola Manhur y pedronet, muchisimas gracias por contestarme, me habeis sido de mucha ayuda, pero, ahora refiriendome a Manhur:
Lo de crear las 94 textbox me sale, pero se crean todas en vertical, y necesito que se creen así:

A      text(0)   text(1)   text(2)
B      text(3)   text(4)   text(5)
C...

y aún así no hay espacio suficiente en la pantalla, pero si me puedes decir como hacerlo así, ya me va bien.

Y, pedronet, lo que me has comentado de la función Replace, me sale un fallo:  --Se esperaba: separador de listas o )--

Muchas gracias a los dos.
En línea

CRAB

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.
« Respuesta #7 en: 23 Julio 2005, 13:44 pm »

Fe de erratas: Manhur era Anhur.   Lo siento Anhur
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Detectar tecla presionada y si es tal tecla hacer tal cosa
Programación Visual Basic
Wiidos 3 6,182 Último mensaje 20 Marzo 2011, 19:15 pm
por raul338
Funcion winapi tecla pulsada
Programación C/C++
d00ze13 3 3,026 Último mensaje 24 Noviembre 2011, 06:36 am
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines