Como emular presionar CTRL + CLICK IZQ ?

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

Como emular presionar CTRL + CLICK IZQ ?

Post by FranciscoA »

Eso amigos.
Necesito emular (via codigo) presionar las teclas CONTROL + CLICK IZQ del mouse.
Es para lanzar una acción sin tener teclado ni mouse, en una pantalla touch.
Agradeceré cualquier codigo de muestra, o sugerencias.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by Armando »

Francisco:

Tengo una función a la que nombre Teclado:

Code: Select all

FUNCTION Teclado( oDlg, nKey, nVeces )
   LOCAL nVez
   DEFAULT nVeces := 1

   oDlg:SetFocus( )
   FOR nVez := 1 TO nVeces
      oDlg:POSTMSG( WM_KEYDOWN, nKey, 0 )
   NEXT
RETURN ( NIL )
 
En esta función solo utilizo la tecla FLECHA ABAJO (WM_KEYDOWN) pero si miras
en VKey.Ch de FW, encontrarás vairas combinaciones de teclas.

Espero te sirva mi ejemplo

Saludos

EDITADO

Francisco, creo que la combinación de teclas que necesitas sería VK_CONTROL + VK_RETURN, no olvides
incluir VKey.Ch

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by FranciscoA »

Armando.
Gracias por contestar. Voy a probar tu codigo y luego te digo.
Nuevamente gracias.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by karinha »

Code: Select all

#Include "FiveWin.Ch"

Function Main()

   LOCAL oWnd

   DEFINE WINDOW oWnd TITLE "Testando Teclado"

   oWnd:bKeyDown := { | nKey | StdKey( nKey ) }
   oWnd:bKeyChar := { | nKey | StdKey( nKey ) }

   ACTIVATE WINDOW oWnd

Return Nil

FUNCTION StdKey( nKey )

   do case
   case nKey == 1 .and. GetKeyState( VK_CONTROL )
      ? Str( nKey )
   case nKey == 2 .and. GetKeyState( VK_CONTROL )
      ? Str( nKey )
   case nKey == 3 .and. GetKeyState( VK_CONTROL )
      ? Str( nKey )
   case nKey == 4 .and. GetKeyState( VK_CONTROL )
      ? Str( nKey )
   case nKey == 8 .and. GetKeyState( VK_CONTROL )
      ? Str( nKey )
   case nKey == 13 .and. GetKeyState( VK_CONTROL )
      ? Str( nKey )
   case nKey == 65 .and. GetKeyState( VK_CONTROL ) // Crtl + A
      ? Str( nKey )
   case nKey == 66 .and. GetKeyState( VK_CONTROL ) // Crtl + B
      ? Str( nKey )
   case nKey == 68 .and. GetKeyState( VK_CONTROL ) // Crtl + C
      ? Str( nKey )
   case nKey == 38 .and. GetKeyState( VK_CONTROL ) // Ctrl + Down
      ? Str( nKey )
   case nKey == 40 .and. GetKeyState( VK_CONTROL ) // Ctrl + Up
      ? Str( nKey )
   case nKey == 48 .and. GetKeyState( VK_CONTROL ) // Ctrl + 0
      ? Str( nKey )
   end case

RETURN Nil
 
João Santos - São Paulo - Brasil
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by FranciscoA »

Armando.
He probado con esta leve modificacion a tu funcion, pero no logro resultados:

Code: Select all

Teclado( oDlg, .T., VK_CONTROL, nVeces )
Teclado( oDlg, .F., VK_CONTROL, nVeces )
//---------------------------------------//
FUNCTION Teclado( oWind, lPressed, nVKey, nVeces )
   LOCAL nVez, nTecla
   DEFAULT nVeces := 1

   nTecla := if(lPressed, WM_KEYDOWN, WM_KEYUP)

   oWind:SetFocus( )
   FOR nVez := 1 TO nVeces
      oWind:PostMsg( nTecla, nVKey, 0 )
   NEXT
RETURN ( NIL )
 
Lo que necesito es emular la tecla VK_CONTROL presionada, mientras ejecuto una accion, luego soltar la tecla VK_CONTROL.
En otras palabras, quiero imitar el MULTISELECT del xBrowse, en un ambiento touch.
Alguna otra idea.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by FranciscoA »

Karinha.
Gracias por tu codigo. Me ha dado ideas para otros trabajos.

Lo que quiero hacer es imitar el MULTISELECT del xBrowse, en un ambiento touch. (sin keyboard y sin mouse instalados)
Es decir, emular la tecla VK_CONTROL presionada, mientras ejecuto otra accion. Luego soltar la tecla VK_CONTROL. (vía codigo)
Alguna otra idea?
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by FranciscoA »

Hola amigos.
Voy avanzando. Estoy probando la function SendKey(VK_CONTROL), y me funciona para fijar la tecla CONTROL.
Lo que me falta es emular mantener presionado un boton, ejecutar action with SendKey(), y después emular soltar el boton.
Gracias
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Como emular presionar CTRL + CLICK IZQ ?

Post by karinha »

João Santos - São Paulo - Brasil
Post Reply