FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como emular presionar CTRL + CLICK IZQ ?
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Como emular presionar CTRL + CLICK IZQ ?
Posted: Tue May 08, 2018 02: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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Tue May 08, 2018 04:17 PM
Francisco:

Tengo una función a la que nombre Teclado:

Code (fw): Select all Collapse
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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Tue May 08, 2018 07: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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Tue May 08, 2018 07:29 PM
Code (fw): Select all Collapse
#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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Tue May 08, 2018 09:40 PM
Armando.
He probado con esta leve modificacion a tu funcion, pero no logro resultados:

Code (fw): Select all Collapse
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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Tue May 08, 2018 09: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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Wed May 09, 2018 02: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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Como emular presionar CTRL + CLICK IZQ ?
Posted: Wed May 09, 2018 03:46 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion