Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con enviar teclas...

Estas en el tema de Ayuda con enviar teclas... en el foro de Visual Basic clásico en Foros del Web. hola :) quisiera saber como puedo hacer un codigo que pueda enviar una tecla como el "espacio" y los numeros como 0 al 9 pero ...
  #1 (permalink)  
Antiguo 10/09/2005, 11:06
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Ayuda con enviar teclas...

hola :)
quisiera saber como puedo hacer un codigo que pueda enviar una tecla como el "espacio" y los numeros como 0 al 9 pero los numeros del teclado de letras no numérico.
normalmente lo hacia con 'sendkeys' pero no se como hacerlo funcionar porfavor ayudenme :)
Gracias...
  #2 (permalink)  
Antiguo 10/09/2005, 15:53
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
Cita:
Iniciado por antonio2005pe
hola :)
quisiera saber como puedo hacer un codigo que pueda enviar una tecla como el "espacio" y los numeros como 0 al 9 pero los numeros del teclado de letras no numérico.
normalmente lo hacia con 'sendkeys' pero no se como hacerlo funcionar porfavor ayudenme :)
Gracias...
WENAS, EN LA FAQS HAY UN EJEMPLO DE LA CAPTTURA DE TECLAS.
SALU2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #3 (permalink)  
Antiguo 10/09/2005, 19:07
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años, 1 mes
Puntos: 3
SendKeys "codigo de tecla"
Ejemplo:
SendKeys "{esc}"

Tecla Código
RETROCESO {BACKSPACE}, {BS} o {BKSP}
INTER {BREAK}
BLOQ MAYÚS {CAPSLOCK}
SUPR o SUPRIMIR {DELETE} o {DEL}
FLECHA ABAJO {DOWN}
FIN {END}
ENTRAR {ENTER} o ~
ESC {ESC}
AYUDA {HELP}
INICIO {HOME}
INS o INSERT {INSERT} o {INS}
FLECHA IZQUIERDA {LEFT}
BLOQ NUM {NUMLOCK}
AV PÁG {PGDN}
RE PÁG {PGUP}
IMPR PANT {PRTSC} (reservado para uso futuro)
FLECHA DERECHA {RIGHT}
BLOQ DESPL {SCROLLLOCK}
TAB {TAB}
FLECHA ARRIBA {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
Sumar en el teclado numérico {ADD}
Restar en el teclado numérico {SUBTRACT}
Multiplicar en el teclado numérico {MULTIPLY}
Dividir en el teclado numérico {DIVIDE}

Para especificar teclas con cualquier combinación de las teclas MAYÚS, CTRL y ALT, escriba delante del código de la tecla uno o varios de los siguientes códigos.

Tecla Código
MAYÚS +
CTRL ^
ALT %

Para especificar que se debe mantener presionada una combinación de las teclas MAYÚS, CTRL y ALT mientras se presionan otras teclas, ponga entre paréntesis el código de esas teclas. Por ejemplo, para especificar que se mantenga presionada MAYÚS mientras se presiona E y C, utilice "+(EC)". Para especificar que se mantenga presionada MAYÚS mientras se presiona E, seguida de C sin MAYÚS, utilice "+EC".

Para especificar una repetición de teclas, utilice el formato {tecla número}. Hay que separar la tecla y el número con un espacio. Por ejemplo, {LEFT 42} significa que se debe presionar la tecla FLECHA IZQUIERDA 42 veces; {h 10} significa que se debe presionar H 10 veces.

Nota Debido a que no existe un método administrado para activar otra aplicación, se puede utilizar esta clase en la aplicación actual o bien utilizar métodos nativos de Windows, como FindWindow y SetForegroundWindow para forzar el desplazamiento del foco a otras aplicaciones.

Espero que esto te sirva....
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #4 (permalink)  
Antiguo 11/09/2005, 08:09
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
ya ke ponés semejante ejemplo, seria bueno ke pongás un ejemplo con al menos una tecla
salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #5 (permalink)  
Antiguo 11/09/2005, 08:40
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por darkhack
SendKeys "codigo de tecla"
Ejemplo:
SendKeys "{esc}"

Tecla Código
RETROCESO {BACKSPACE}, {BS} o {BKSP}
INTER {BREAK}
BLOQ MAYÚS {CAPSLOCK}
SUPR o SUPRIMIR {DELETE} o {DEL}
FLECHA ABAJO {DOWN}
FIN {END}
ENTRAR {ENTER} o ~
ESC {ESC}
AYUDA {HELP}
INICIO {HOME}
INS o INSERT {INSERT} o {INS}
FLECHA IZQUIERDA {LEFT}
BLOQ NUM {NUMLOCK}
AV PÁG {PGDN}
RE PÁG {PGUP}
IMPR PANT {PRTSC} (reservado para uso futuro)
FLECHA DERECHA {RIGHT}
BLOQ DESPL {SCROLLLOCK}
TAB {TAB}
FLECHA ARRIBA {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
Sumar en el teclado numérico {ADD}
Restar en el teclado numérico {SUBTRACT}
Multiplicar en el teclado numérico {MULTIPLY}
Dividir en el teclado numérico {DIVIDE}

Para especificar teclas con cualquier combinación de las teclas MAYÚS, CTRL y ALT, escriba delante del código de la tecla uno o varios de los siguientes códigos.

Tecla Código
MAYÚS +
CTRL ^
ALT %

Para especificar que se debe mantener presionada una combinación de las teclas MAYÚS, CTRL y ALT mientras se presionan otras teclas, ponga entre paréntesis el código de esas teclas. Por ejemplo, para especificar que se mantenga presionada MAYÚS mientras se presiona E y C, utilice "+(EC)". Para especificar que se mantenga presionada MAYÚS mientras se presiona E, seguida de C sin MAYÚS, utilice "+EC".

Para especificar una repetición de teclas, utilice el formato {tecla número}. Hay que separar la tecla y el número con un espacio. Por ejemplo, {LEFT 42} significa que se debe presionar la tecla FLECHA IZQUIERDA 42 veces; {h 10} significa que se debe presionar H 10 veces.

Nota Debido a que no existe un método administrado para activar otra aplicación, se puede utilizar esta clase en la aplicación actual o bien utilizar métodos nativos de Windows, como FindWindow y SetForegroundWindow para forzar el desplazamiento del foco a otras aplicaciones.

Espero que esto te sirva....
Gracias`por la ayuda pero cual es el codigo de espacio y los numeros del teclado de letras?
....................

Última edición por antonio2005pe; 11/09/2005 a las 13:16
  #6 (permalink)  
Antiguo 11/09/2005, 13:18
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Huh?
....................
  #7 (permalink)  
Antiguo 11/09/2005, 19:02
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años, 1 mes
Puntos: 3
podrias comparar las teclas con su codigo ASCII el del espacio es el "32" pero el de los numeros del teclado alfabetico no me los se jee
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #8 (permalink)  
Antiguo 12/09/2005, 09:43
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Pero Como El Codigo Con Sendkeys?
Sendkeys "{32}" ? Asi?
  #9 (permalink)  
Antiguo 12/09/2005, 09:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Cita:
Iniciado por antonio2005pe
Pero Como El Codigo Con Sendkeys?
Sendkeys "{32}" ? Asi?
Para enviar el espacio o cualquier otro carácter normal se usa:
Código:
SendKeys Caracter
Ejemplo:
Código:
SendKeys " "
Para enviar el Espacio.....
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 12/09/2005, 10:07
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por David el Grande
Para enviar el espacio o cualquier otro carácter normal se usa:
Código:
SendKeys Caracter
Ejemplo:
Código:
SendKeys " "
Para enviar el Espacio.....
SI PERO ESO SOLO ENVIA EL ESPACIO EN BLACO PERO NO ES COMO PRESIONAR EL ESPACIARDOR
  #11 (permalink)  
Antiguo 12/09/2005, 10:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación

Cita:
Iniciado por antonio2005pe
SI PERO ESO SOLO ENVIA EL ESPACIO EN BLACO PERO NO ES COMO PRESIONAR EL ESPACIARDOR
¿Por qué lo dices? sí es como presionar el espaciador, además, si quieres tanto manejar el teclado te cuento que la API es mucho mejor.....
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 12/09/2005, 10:39
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
y como manejo la api me puedes dar un ejemplo porfovor?
  #13 (permalink)  
Antiguo 12/09/2005, 10:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Cita:
Iniciado por antonio2005pe
y como manejo la api me puedes dar un ejemplo porfovor?
pues llamas a keybd_event, es la que se encarga del teclado, nos vemos....
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 12/09/2005, 10:58
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por David el Grande
pues llamas a keybd_event, es la que se encarga del teclado, nos vemos....
ya lo declare en el modulo :

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

como hago para llamarlo por ejemplo quiero que presione el espaciador...

keybd_event (????????????)
  #15 (permalink)  
Antiguo 12/09/2005, 11:28
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
por favor ayudenme T_____T
  #16 (permalink)  
Antiguo 12/09/2005, 12:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
El ejemplo para simular que presiono el espacio
SendKeys Chr(32)

SendKeys Chr(49) ' tecla 1
SendKeys Chr(50) ' tecla 2
----
----
SendKeys Chr(57) ' tecla 9

Última edición por bubilo; 12/09/2005 a las 12:50
  #17 (permalink)  
Antiguo 13/09/2005, 11:13
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
es k el metodo sendkeys no funciona con el programa que kiero montar (macro) T_T
  #18 (permalink)  
Antiguo 13/09/2005, 15:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Ay, ay, ay, una tormenta en vaso de agua:
Código:
Call keybd_event(32, 0, 0, 0)
Call keybd_event(32, 0, KEYEVENTF_KEYUP, 0)
Así nomás es.... nos vemos.....
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 14/09/2005, 14:04
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
no me funciona :((
  #20 (permalink)  
Antiguo 15/09/2005, 11:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Cita:
Iniciado por antonio2005pe
no me funciona :((
Pensé que descubrirías por ti mismo que ésto te falta:
Código:
 
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
... nos vemos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #21 (permalink)  
Antiguo 15/09/2005, 13:22
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Muchas Gracias :) Es Que Soy Un Novato En Esto T_t
  #22 (permalink)  
Antiguo 15/09/2005, 13:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Cita:
Iniciado por antonio2005pe
Muchas Gracias :) Es Que Soy Un Novato En Esto T_t
Bueno, de nada... nos vemos....
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:52.