arka planında python kullanarak mouseevents ve keyevents'ı nasıl yakalayabilirim Arka planda çalışabilen ancak bir mouseevent veya keyevent olduğunda metin yazdırabilen bir python betiği yapmak istiyorum. Bunu başarmak için herhangi bir kütüphane/yerleşik işlevsellik var mı? Ya da bu bilgiyi almak için arayabileceğim herhangi bir sistem komutu? Kök olmak sorun değil.Linki
Q
Linki
7
A
cevap
11
Sanırım, evde yaşananlar için python bağlamaları kullanabilirsiniz: http://packages.python.org/evdev/index.html. eğitimde bunlar klavye için bir örnek vermek, ama bu fare olayları için benzer olmalıdır:
>>> from evdev import InputDevice, categorize, ecodes
>>> from select import select
>>> dev = InputDevice('/dev/input/event1')
>>> print(dev)
device /dev/input/event1, name "Dell Dell USB Keyboard", phys "usb-0000:00:12.1-2/input0"
>>> while True:
... r,w,x = select([dev], [], [])
... for event in dev.read():
... if event.type == ecodes.EV_KEY:
... print(categorize(event))
... # hitting a and holding space
key event at 1337016188.396030, 30 (KEY_A), down
key event at 1337016188.492033, 30 (KEY_A), up
key event at 1337016189.772129, 57 (KEY_SPACE), down
key event at 1337016190.275396, 57 (KEY_SPACE), hold
key event at 1337016190.284160, 57 (KEY_SPACE), up
2
örneğin pynput bir göz atın:
from pynput.keyboard import Key, Listener
#defining function to print when key is pressed
def on_press(key):
print('{0} pressed'.format(
key))
#defining function to print when key is released
def on_release(key):
print('{0} release'.format(
key))
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
yüzden - bir keylogger gibi? –
Evet. ... karakter sınırı ... – jett
Girdi olaylarını '/ dev/input' içindeki cihazlardan okumalısınız. –