लिनक्स इनपुट उपप्रणाली तीन भागों से बना है: चालक परत, इनपुट उपप्रणाली कोर परत और घटना प्रसंस्करण परत। और कीबोर्ड या अन्य इनपुट इवेंट सभी का वर्णन input_event
है।
कोड और प्रकार नीचे
उपयोग अपने टर्मिनल में python filename.py | grep "keyboard"
#!/usr/bin/env python
#coding: utf-8
import os
deviceFilePath = '/sys/class/input/'
def showDevice():
os.chdir(deviceFilePath)
for i in os.listdir(os.getcwd()):
namePath = deviceFilePath + i + '/device/name'
if os.path.isfile(namePath):
print "Name: %s Device: %s" % (i, file(namePath).read())
if __name__ == '__main__':
showDevice()
आप Name: event1 Device: AT Translated Set 2 keyboard
मिलना चाहिए। तो का उपयोग
#!/usr/bin/env python
#coding: utf-8
from evdev import InputDevice
from select import select
def detectInputKey():
dev = InputDevice('/dev/input/event1')
while True:
select([dev], [], [])
for event in dev.read():
print "code:%s value:%s" % (event.code, event.value)
if __name__ == '__main__':
detectInputKey()
evdev
एक पैकेज लिनक्स में सामान्य इनपुट घटना इंटरफ़ेस के लिए बाइंडिंग प्रदान करता है। Evdev इंटरफ़ेस कर्नेल में जेनरेट की गई घटनाओं को सीधे पारदर्शी उपकरणों के माध्यम से उपयोगकर्ता स्तर पर पास करने के उद्देश्य से कार्य करता है जो आम तौर पर /dev/input/.and select
में स्थित हैं select
है।
आप इस तरह हासिल करने की क्या कोशिश कर रहे हैं? –
मैं केवल अपना कुंजी ईवेंट नंबर का उपयोग करके अपना खुद का ईवेंट श्रोता सेट करने का प्रयास करता हूं। कुछ चीजें नीचे दी गई हैं: कीबोर्ड_लिस्टनर ('0x24', custom_event_listener()) – Rome
एक मौजूदा समाधान pykeylogger है। – georgexsh