Page 1 of 1

SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 6:14 pm
by George
A Antonio y a los compañeros del foro que han trabajado con Fivelinux si por favor me pueden orientar en lo siguiente:
a) Existe un equivalente a SendKey() en FiveLinux?
b) Que otra libreria se debe enlazar para utilizar el printer con FiveLinux ya que libgnomeprintui2 no esta disponible.

Saludos,

George

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 8:17 pm
by Antonio Linares
George,

Como FiveLinux usa GTK podemos usar gdk_event_put() como se explica aqui:

https://mail.gnome.org/archives/gnome-d ... 00093.html

Pero según comentan aqui, no funciona correctamente y al parecer se puede usar XTestFakeKeyEvent():

https://mail.gnome.org/archives/gtk-app ... 00312.html

pero esa función pertenece a X11 y habría que usar esta librería: libx11-dev:

http://stackoverflow.com/questions/5299 ... -in-ubuntu

No lo he probado, asi que no se si servirá

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 8:24 pm
by Antonio Linares
George,
b) Que otra libreria se debe enlazar para utilizar el printer con FiveLinux ya que libgnomeprintui2 no esta disponible
Por lo visto GTK proporciona un "High-level Printing API":

https://developer.gnome.org/gtk3/stable ... g-API.html

Habría que probarlo con FiveLinux

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 8:26 pm
by Antonio Linares
George,

Que distribución de Linux estás usando ? Debian, Ubuntu, ... ?

32 ó 64 bits ?

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 9:05 pm
by George
Gracias Antonio por tus sugerencias.
He visto en el foro el siguiente codigo, referente a SendKey(), que tu publicaste para Fivewin:
HB_FUNC( FW_SENDKEY )
{
if( hb_parni( 2 ) == 0 )
keybd_event( ( BYTE ) hb_parni( 1 ), ( BYTE ) hb_parni( 2 ),
KEYEVENTF_EXTENDEDKEY | 0, 0 );
else
keybd_event( ( BYTE ) hb_parni( 1 ), ( BYTE ) hb_parni( 2 ),
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
}
Seria posible convertirlo a FiveLinux?

Por otro lado estoy usando Fivelinux en la Raspberry-Pi 2 bajo Raspbian (una version de DEBIAN para las Raspberry-Pi).
Tengo entendido que la RASPI-2 corre a 32 Bits

Saludos,

George

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 9:17 pm
by George
Antonio,
He estado revisando el codigo get de Fivelinux y puedo interceptar ahi ciertas teclas pero lo que necesito hacer es saltar de un control al proximo control cuando se presione la tecla [ENTER]
En Fivewin usamos "::oWnd:GoNextCtrl( ::hWnd ). Tenemos un metodo equivalente en Fivelinux?

Saludos,

George

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 9:20 pm
by Antonio Linares
George,

la función keybd_event() es sólo para Windows. Tendríamos que probar de la forma que comentan en esos mensajes.

Voy a ver si puedo instalar Raspbian 32 bits en VirtualBox

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 9:32 pm
by Antonio Linares
George,

Prueba a añadir este método en la clase TWindow:

Code: Select all

METHOD GoNextCtrl( hWnd ) CLASS TWindow

   local nAt := AScan( ::aControls, { | oCtrl | oCtrl:hWnd == hWnd } )

   if nAt != 0
      if nAt < Len( ::aControls )
         ::aControls[ nAt + 1 ]:SetFocus()
      else
         ::aControls[ 1 ]:SetFocus()
      endif
   endif

return nil
 

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 10:09 pm
by Antonio Linares
Raspbian is a distribution for ARM processors. Raspbian cannot run in VirtualBox.
I don't have a Raspberri at hand... :-(

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 10:11 pm
by Antonio Linares

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 10:22 pm
by George
Antonio,
Lo que me enviaste funciona perfecto dentro de la clase GET usando solo el codigo
case nKey == K_ENTER
::oWnd:aControls[nControl]:SetFocus()

Mas adelante integrare el metodo a la clase TWindow para hacerlo mas generico.

Si quieres te envio a tu correo las libreria de FiveLinux que genere para las RASPI-2 y los fuentes utilizados.

Saludos,

George

Re: SendKey() y Printer en Fivelinux

Posted: Thu Feb 11, 2016 10:27 pm
by Antonio Linares
George,

Muy bien :-)

Si, por favor, envíamelo. Gracias