elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
06 Septiembre 2008, 01:11  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación VB (Moderadores: ||MadAntrax||, E0N)
| | |-+  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 Imprimir
Autor Tema: DUDAS: Tecla ALT, Función CASE, como GARDAR una cosa.  (Leído 365 veces)
CRAB

Desconectado Desconectado

Mensajes: 16


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

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: 840



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

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.480


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

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: 136



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

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

Slasher-K

Desconectado Desconectado

Mensajes: 1.480


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

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: 402


[>Argentina<]


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

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 »

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 »

Fe de erratas: Manhur era Anhur.   Lo siento Anhur
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC