Ayuda, es algo sencillo con Set Key

Ayuda, es algo sencillo con Set Key

Postby fespinoza » Fri Dec 19, 2008 1:47 am

Hola foro, a los tiempos una pregunta.

Tengo el siguiente código usando Set Key, que lo ubico al inicio del programa y me sirve para llamar a una rutina oculta en cualquier momento dentro de la aplicación.

SET KEY VK_F2 TO Bienvenido()


Qquiero saber como sería la sentencia si quiero usar una combinación de teclas, como por ejemplo Ctrl+F9.

Saludos desde Ecuador

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Ayuda, es algo sencillo con Set Key

Postby FranciscoA » Fri Dec 19, 2008 5:10 am

fespinoza wrote:Hola foro, a los tiempos una pregunta.

Tengo el siguiente código usando Set Key, que lo ubico al inicio del programa y me sirve para llamar a una rutina oculta en cualquier momento dentro de la aplicación.

SET KEY VK_F2 TO Bienvenido()


Qquiero saber como sería la sentencia si quiero usar una combinación de teclas, como por ejemplo Ctrl+F9.

Saludos desde Ecuador

Fernando Espinoza


Mira si es esto lo que deseas:

oWnd:bKeyDown := { |nKey| IIF(nKey == VK_F6 .and. GetKeyState(VK_CONTROL) .AND. GetKeyState(VK_TAB), MiChequeo(), IF(nKey == VK_F5 .and. GetKeyState(VK_CONTROL) .AND. GetKeyState(VK_TAB), WinExec("winword "+"wcont.ini"),) )}

Saludos.
User avatar
FranciscoA
 
Posts: 2129
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby Biel EA6DD » Fri Dec 19, 2008 8:39 am

como te comenta Francisco es una forma de hacerlo, otra que quizas te quede mas claro, es asignando la funcion a la tecla F9
Code: Select all  Expand view
SET KEY VK_F9 TO Funcion()

y en la funcion comprobar si se ha pulsado control.
Code: Select all  Expand view
FUNCTION Funcion()
    IF ! GETKEYSTATE( VK_CONTROL )
        ? "CTRL-F9"
    ELSE
         RETURN NIL
    ENDIF
...
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby fespinoza » Fri Dec 19, 2008 12:00 pm

Amigos, gracias por sus respuestas, voy a probar las 2 opciones y les aviso
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Postby fespinoza » Wed Dec 24, 2008 12:55 pm

Estimados Biel, Francisco

Probe sus sugerencias, pero no tengo resultados positivos , porque la combinaciòn de teclas aplastadas debe ser al mismo tiempo (como cuando se hacia Ctrl+PrintScreen), y con lo que me enviaron detecta el ingreso de las teclas de forma individual uno por uno (es decir primero detecta F9 luego el control) y no como una combinacion al mismo tiempo.

Alguna sugerencia adicional.

Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Postby cuatecatl82 » Wed Dec 24, 2008 3:28 pm

Estimado Colega Fernando:

yo lo hago de esta manera y me funciona bien..
Ojala y sea lo que buscas..

Code: Select all  Expand view
#Include "FIVEWIN.CH"
#Include "VKEY.CH"

Function Main()

Define Window oWndMain .. ..
(Ya sabes como va todo esto..)

oWndMain:bKeyDown = { | nKey | ACCESOS(nKey) }  //Esto llama a las teclas combinadas

Activate Window oWndMain


//--------------------------//
STATIC FUNCTION ACCESOS(nKey)

/****************************************************
  Para accesar con la Tecla CTRL  + A := CASE ( nKey == ASC( "A" ) .OR. nKey == ASC( "a" ) ) .AND. GetKeyState( VK_CONTROL )
  Para accesar con la Tecla SHIFT + A := CASE ( nKey == ASC( "A" ) .OR. nKey == ASC( "a" ) ) .AND. GetKeyState( VK_SHIFT )
  Para accesar con la Tecla CTRL  + F2:= CASE ( nKey == VK_F2 .AND. GetKeyState( VK_CONTROL ) )
  Para accesar con la Tecla SHIFT + F2:= CASE ( nKey == VK_F2 .AND. GetKeyState( VK_SHIFT ) )
  Para accesar con la Tecla         F2:= CASE ( nKey == VK_F2 )
  Se pueden Usar la teclas "Especiales como: Enter, Retroceso, Flechas de Movimiento, Sup, Ins, Inicio, Final, etc. Revisar el Archivo VKEY.CH"
****************************************************/

//msginfo(nKey)

DO CASE

CASE ( nKey == VK_F2 )
MsgInfo("Uno")
CASE ( nKey == VK_F3 )
MsgInfo("Dos")
CASE ( nKey == VK_F4 )
MsgInfo("Tres")
CASE ( nKey == VK_RETURN   .AND. GetKeyState( VK_CONTROL ) )     
MsgInfo("Cuatro")
CASE ( nKey == VK_ADD      .AND. GetKeyState( VK_CONTROL ) )     
MsgInfo("Cinco")
CASE ( nKey == VK_SUBTRACT .AND. GetKeyState( VK_CONTROL ) )     
MsgInfo("Seis")
CASE ( nKey == VK_MULTIPLY .AND. GetKeyState( VK_CONTROL ) )     
MsgInfo("Siete")
CASE ( nKey == ASC( "C" ) .OR. nKey == ASC( "c" ) ) .AND. GetKeyState( VK_SHIFT ) 
MsgInfo("Ocho")
CASE ( nKey == ASC( "B" ) .OR. nKey == ASC( "b" ) ) .AND. GetKeyState( VK_CONTROL )     
MsgInfo("Nueve")   
CASE ( nKey == ASC( "F" ) .OR. nKey == ASC( "f" ) ) .AND. GetKeyState( VK_CONTROL )
MsgInfo("Diez")   
ENDCASE

RETURN( .T. )


Espero que pases una muy Feliz Navidad...

Un fuerte abrazo.. :lol: :D 8)
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Postby fespinoza » Wed Dec 24, 2008 5:36 pm

Estimado Cuatecatl82,

Voy a probar y de antemano gracias por todo.
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 151 guests