Como emular presionar CTRL + CLICK IZQ ?

Como emular presionar CTRL + CLICK IZQ ?

Postby FranciscoA » Tue May 08, 2018 2:31 am

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.

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

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby Armando » Tue May 08, 2018 4:17 pm

Francisco:

Tengo una función a la que nombre Teclado:

Code: Select all  Expand view

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
Armando
 
Posts: 3201
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby FranciscoA » Tue May 08, 2018 7:19 pm

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

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

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby karinha » Tue May 08, 2018 7:29 pm

Code: Select all  Expand view

#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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7794
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby FranciscoA » Tue May 08, 2018 9:40 pm

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

Code: Select all  Expand view
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.

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

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby FranciscoA » Tue May 08, 2018 9:44 pm

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.

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

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby FranciscoA » Wed May 09, 2018 2:46 pm

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.

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

Re: Como emular presionar CTRL + CLICK IZQ ?

Postby karinha » Wed May 09, 2018 3:46 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7794
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: FiveWiDi, Google [Bot] and 46 guests