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

Combinacion de teclas ¡¡¡¡

Estas en el tema de Combinacion de teclas ¡¡¡¡ en el foro de Visual Basic clásico en Foros del Web. Hola: Mi pregunta , o duda es la siguiente.Estoy haciendo una aplicacion en VB y me gustaria que al pinchar en un commandbutton, se ejecute ...
  #1 (permalink)  
Antiguo 11/03/2008, 02:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Combinacion de teclas ¡¡¡¡

Hola:

Mi pregunta , o duda es la siguiente.Estoy haciendo una aplicacion en VB y me gustaria que al pinchar en un commandbutton, se ejecute una combinacion de teclas, por ejemplo "control + F", pero sin que el usuario tenga q pulsarlas.
No se si me e explicado con claridad.
Lo quiero hacer asi pq estoy utilizando un programa donde tiene incorporada un modulo de VB, y quiero hacer esto para q se habra un menu de la barra de herramientas.

Si alquien podria decirme como seria el codigo se lo agradeceria muchisimo.

Gracias de antemano.
  #2 (permalink)  
Antiguo 11/03/2008, 04:06
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Combinacion de teclas ¡¡¡¡

Con la instrucción "SendKeys":

Código:
Private Sub Command1_Click()
SendKeys "^F"
End Sub
  #3 (permalink)  
Antiguo 11/03/2008, 04:56
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Combinacion de teclas ¡¡¡¡

Pues no me hace nada, pincho en el botton que e creado y no se me abre un comando de la barra de herramientas q tiene esa combinacion de teclas rapida "control +F".

No se si este comando valdra, ya q lo que yo quiero es q ejecute esas teclas pero sin q haya q pulsarlas, q no se si es posible.

Alguna sugerencia mas, por favor ¡¡¡¡
  #4 (permalink)  
Antiguo 11/03/2008, 05:40
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Combinacion de teclas ¡¡¡¡

Si es una opción de un menú, prueba poniendo la F en minúscula.

SendKeys "^f"
  #5 (permalink)  
Antiguo 11/03/2008, 09:16
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Combinacion de teclas ¡¡¡¡

Hola,no quiero ser regañero,pero sendkeys no es muy bueno,es mejor usar api's de windows,a veces hay problemas con sendkeys,si la usa mal se te puede quedar como trabado el teclado y tenes que reiniciar,usa keybd_event,aca tenes un ejemplo:

Api keybd_event

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #6 (permalink)  
Antiguo 12/03/2008, 02:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Combinacion de teclas ¡¡¡¡

Me he mirado el ejemplo q pones, pero es q yo de Api´s no controlo, y no entiendo casi nada del codigo.
Si me podrias hacer el favor de ponerme ese codigo ya modificado para el ejemplo de presionar las teclas "control +F" , seria un gran favor, pero solo si puedes, ya q la funicon Sendkeys no me funciona.

Gracias de antemano.
  #7 (permalink)  
Antiguo 12/03/2008, 03:49
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Combinacion de teclas ¡¡¡¡

Cita:
Iniciado por happydent2 Ver Mensaje
ya q la funicon Sendkeys no me funciona.
¿Estás trabajando con Vista? Efectivamente, la función SendKeys no funciona en Vista.

Te pongo cómo sería con Keybd_event


Código:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
    keybd_event vbKeyControl, 0, 0, 0
    keybd_event 70, 0, 0, 0
    keybd_event vbKeyControl, 0, &H2, 0
    keybd_event 70, 0, &H2, 0
End Sub
Nota: 70 es el código ascii de la letra "F"


Dice seba123neo:
si la usa mal se te puede quedar como trabado el teclado y tenes que reiniciar

Con keybd_event, puede ocurrir exactamente lo mismo si se usa mal

Última edición por Avellaneda; 12/03/2008 a las 04:02 Razón: Aclaración:
  #8 (permalink)  
Antiguo 12/03/2008, 04:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Combinacion de teclas ¡¡¡¡

muchas gracias por pner el codigo pero no he conseguido que funcione.
Seguro q es culpa mia pq soy muy novato en esto, lo que he echo a sido coger tu codigo y pegarlo en el codigo del boton, pero no hace nada.
Estoy usando windows server 2003, y ademas la aplicaicon de visual basic que uso esta dentro de una herramienta GIS que es de informacion geografica, por si te interesa.

NO se si se me olvida hacer algo, pq devveria funcionar para cualquier visual basic de un programa como el que trae excel o access,no?

Ademas me he dado cuenta que no es igual al otro trozo de Api que pusiste , pq en el q me pasas no esta ni lo de timmer ni definir las constantes.

P.D: perdona por si digo muchas burradas tecnicas, es que soy bastatnte novato
  #9 (permalink)  
Antiguo 12/03/2008, 05:32
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Combinacion de teclas ¡¡¡¡

Para enviar una única pulsación de tecla, no es necesario ni el control Timer ni declarar las constantes (vbKeyControl es una constante definida por el propio VB).
El código que puse bería funcionar. Yo lo he probado y me funciona perfectamente.

Si estás hablando de VBA (de Excel o Access) no sé si funcionará, ya que no utilizo ese lenguaje de programación.

Última edición por Avellaneda; 12/03/2008 a las 05:38
  #10 (permalink)  
Antiguo 12/03/2008, 05:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Combinacion de teclas ¡¡¡¡

Es que yo estoy trabajando en VBA que no es de excel ni de access, es de un programa GIS que tiene un modulo de VBA.
Creo q trabaja igual que el modulo de VBA de excel o access.
En esos sitios el codigo no me funciona.

Muchas gracias por intentarlo.
  #11 (permalink)  
Antiguo 12/03/2008, 10:38
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Combinacion de teclas ¡¡¡¡

Cita:
Me he mirado el ejemplo q pones, pero es q yo de Api´s no controlo, y no entiendo casi nada del codigo.
bueno yo te pongo el codigo ,si vos no lo entendes yo no se,pero si queres programar las api's las vas a tener que dominar porque son como el ladrillo de una casa..

Cita:
Si me podrias hacer el favor de ponerme ese codigo ya modificado para el ejemplo de presionar las teclas "control +F"
aca ayudamos,pero tampoco hacemos el trabajo de los otros...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
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 10:37.