पर पृष्ठभूमि में पायथन का उपयोग करके माउसवेंट्स और कीवेंड्स कैप्चर कैसे कर सकता हूं, मैं एक पायथन स्क्रिप्ट बनाना चाहता हूं जो पृष्ठभूमि में चल सकता है लेकिन जब माउसवेन्ट या कीवेन्ट होता है तो टेक्स्ट प्रिंट करें। क्या यह प्राप्त करने के लिए कोई पुस्तकालय/अंतर्निहित कार्यक्षमता है? या कोई सिस्टम कमांड मैं इस जानकारी को पाने के लिए कॉल कर सकता हूं? जड़ होने के नाते कोई मुद्दा नहीं है।मैं लिनक्स
7
A
उत्तर
11
मुझे लगता है, आप evdev के लिए पाइथन बाइंडिंग का उपयोग कर सकते हैं: http://packages.python.org/evdev/index.html। ट्यूटोरियल में वे कीबोर्ड के लिए एक उदाहरण देता है, लेकिन यह माउस की घटनाओं के लिए समान होनी चाहिए:
>>> 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
उदाहरण के लिए, pynput पर एक नज़र डालें:
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()
तो - एक keylogger की तरह? –
हां। ... चरित्र सीमा ... – jett
आपको '/ dev/input' में डिवाइस से इनपुट इवेंट पढ़ना होगा। –