USB port sniffing
Verfasst: Samstag 9. März 2019, 11:05
Hallo meine hoffentlichen Retter,
ich arbeite gerade an einem kleinen Projekt um mir eine eigene Stempeluhr für meine Arbeiten zuhause zu bauen.
Ich nutze RFID Karten die jeweils eine 10 stellen lange Nummer haben um den "Stempler" identifizieren zu können.
Da ich mich meist auf Windows bewege habe ich mir auch einen USB Reader zugelegt. Dieser funktioniert auch
so wie er soll, jedoch gibt er die Nummer der daraufgelegten Karte als einen Tastatur Input.
Das wäre soweit kein Problem da ich über pynput diesen sehr einfach auslesen und eine Zahlenfolge mit meiner
User Datenbank matchen kann. Aber ich möchte die Anwendung unsichtbar und im Hintergrund haben, sodass
man jederzeit bei einer Raucherpause einfach schnell die Karte über den Leser ziehen kann und das Script sein
weiteres tut.
Hier nun mein Problem. Wenn die Kartennummer als Keyboard-Input kommt, und ich mich in anderen Programmen
befinde so werden hierdurch Shortcuts ausgelöst und texte in aktuelle Positionen geschrieben. Das schlimmste daran
ist, das am ende jedes Scans auch noch die Entertaste ausgelöst wird, was gerade auf Internetseiten oft zu problemen
führen kann.
Mein bisheriger Lösungsansatz war, über pyusb mein Device auszulesen. Leider gibt diese jedoch keinerlei informationen
über seine Endpunkte aus. (ich nehme ans, da er irgendwie die Tastatur verwendet)
Auch ansonsten ist das Gerät über pyusb nicht wirklich brauchbar, da ich keinerlei Dokumentation über das Teil selbst
besitzte. Ich dachte jedoch, ich könnte mein Problem lösen, wenn ich einfach den USB eingang überwache, in dem der
Reader steckt, und sobald das Device "irgendetwas" macht, den Tastatur input für 1 Sekunde blockiere und nur in
Python über pynput abfange. Somit könnte ich die Kartennummern einlesen, ohne ein Raspberrypy kaufen zu müssen
und ohne dass sinnlos Shortcuts in meinen Programmen gedrückt werden.
Hat bitte jemand eine Idee... ich versuche mich jetzt seit gut 3 Wochen daran und bin kurz vorm aufgeben....
Danke.
ich arbeite gerade an einem kleinen Projekt um mir eine eigene Stempeluhr für meine Arbeiten zuhause zu bauen.
Ich nutze RFID Karten die jeweils eine 10 stellen lange Nummer haben um den "Stempler" identifizieren zu können.
Da ich mich meist auf Windows bewege habe ich mir auch einen USB Reader zugelegt. Dieser funktioniert auch
so wie er soll, jedoch gibt er die Nummer der daraufgelegten Karte als einen Tastatur Input.
Das wäre soweit kein Problem da ich über pynput diesen sehr einfach auslesen und eine Zahlenfolge mit meiner
User Datenbank matchen kann. Aber ich möchte die Anwendung unsichtbar und im Hintergrund haben, sodass
man jederzeit bei einer Raucherpause einfach schnell die Karte über den Leser ziehen kann und das Script sein
weiteres tut.
Hier nun mein Problem. Wenn die Kartennummer als Keyboard-Input kommt, und ich mich in anderen Programmen
befinde so werden hierdurch Shortcuts ausgelöst und texte in aktuelle Positionen geschrieben. Das schlimmste daran
ist, das am ende jedes Scans auch noch die Entertaste ausgelöst wird, was gerade auf Internetseiten oft zu problemen
führen kann.
Mein bisheriger Lösungsansatz war, über pyusb mein Device auszulesen. Leider gibt diese jedoch keinerlei informationen
über seine Endpunkte aus. (ich nehme ans, da er irgendwie die Tastatur verwendet)
Auch ansonsten ist das Gerät über pyusb nicht wirklich brauchbar, da ich keinerlei Dokumentation über das Teil selbst
besitzte. Ich dachte jedoch, ich könnte mein Problem lösen, wenn ich einfach den USB eingang überwache, in dem der
Reader steckt, und sobald das Device "irgendetwas" macht, den Tastatur input für 1 Sekunde blockiere und nur in
Python über pynput abfange. Somit könnte ich die Kartennummern einlesen, ohne ein Raspberrypy kaufen zu müssen
und ohne dass sinnlos Shortcuts in meinen Programmen gedrückt werden.
Hat bitte jemand eine Idee... ich versuche mich jetzt seit gut 3 Wochen daran und bin kurz vorm aufgeben....
Danke.