controlar Teclado Inactivo

Post Reply
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

controlar Teclado Inactivo

Post by infosys »

Necesito incorporar a mis programas un control que permita chequear si el teclado permanece inactivo por x minutos, se bloquee o cierre la aplicacion, algo similar al protector de pantalla del Window, pero a nivel de programa.
Alguien conoce alguna forma de hacerlo ?

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

Post by karinha »

ya intestastes con el COMANDO: DEFINE TIMER oTimer??
João Santos - São Paulo - Brasil
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Post by infosys »

En realidad fue lo primero que se me ocurrio, trabajar con un timer, pero lo que necesito es controlar si el mouse se esta moviendo y si en algun lugar se presiona alguna tecla, lo cual me indicaria que alguien sigue utilizando el programa, pero lo que no se es como controlar el uso del teclado y si pudiera el movimiento del mouse, para que el timer se renueve con cada movimiento.
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Post by wmormar »

infosys wrote:En realidad fue lo primero que se me ocurrio, trabajar con un timer, pero lo que necesito es controlar si el mouse se esta moviendo y si en algun lugar se presiona alguna tecla, lo cual me indicaria que alguien sigue utilizando el programa, pero lo que no se es como controlar el uso del teclado y si pudiera el movimiento del mouse, para que el timer se renueve con cada movimiento.
Infosys,

Se me ocurre poner un timar, con una variable global (puede ser de tipo Logical), y actualizarla con el bChange, asi cuando pongas el Timer, la validas y listo.

Es una idea, jjejje

Saludos
William, Morales
Saludos

méxico.sureste
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola

Me parecio interesante tu post, asi que estuve investigando y encontre esto :

Para poder hacer lo que comentas, se debera hacer un programa que haga la funcion de un ScreenSaver ya sea en C o C++ ( segun lei, en varios lenguajes ) y al incrustarle la libreria scrnsave.lib esta se encarga del "monitoreo" del idle del raton y del teclado, asi que desde esa app podrias enviar X mensaje o evento a tu aplicacion principal para que se desactive o haga algo, haciendo uso de algun timer para que cheque que exista tal aviso X.

En realidad el principio no se ve tan dificil ( ni tan facil, claro ) pero si es posible, lastima que mis conocimientos en C sean muy pocos :(


aqui puedes bajar la libreria :
http://www.ols-lab.com/devcorner/scrnsave/

y aqui puedes ver unos ejemplos de como crear un ScreenSaver :
http://www.cityintherain.com/howtoscr.html

Espero te sirva

Saludos
FWH 10.6 + xHarbour + Borland 582
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Post by infosys »

Raymundo,

Te agradezco la información, estuve revisando el material pero a la hora de implementación no logro el control que deseo, en realidad mi plan es que el programa en ejecución se bloquee y el usuario debe ingresar su contraseña para desbloquearlo o bien un supervisor, pero eso solo puedo hacerlo en el mismo programa y no por screensaver ya que no se como establecer ese control unido a mi programa de aplicación.

Saludos
Miguel
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola

Podrias intentar algo como esto :

En el archivo ScreenSaver, que en realidad no es otra cosa que otro EXE, al activarse le indicas que genere algun archivito que quieras : "LockPc.TXT" en carpeta XX, y ya desde tu App, le activas un timer para que cada YY tiempo, verifique si existe el archivo "LockPc.TXT" en tal carpeta, si lo encuentra, que haga lo que le indiques y que borre dicho archivo.


Saludos
FWH 10.6 + xHarbour + Borland 582
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Post by infosys »

Raymundo, gracias opte por el metodo que me comentaste y funciona Ok.

Saludos
Miguel
Post Reply