RFID: Add current Keypresser Code
This commit is contained in:
parent
f5d40285a1
commit
7c8a072f4f
|
@ -0,0 +1,55 @@
|
|||
#! /usr/bin/env python
|
||||
|
||||
# by Andrew Karpow <andy@mail.tu-berlin.de>
|
||||
# Public Domain
|
||||
|
||||
from smartcard.CardMonitoring import CardMonitor, CardObserver
|
||||
from smartcard.util import toHexString
|
||||
from threading import Condition
|
||||
import subprocess
|
||||
|
||||
# a simple card observer that prints inserted/removed cards
|
||||
class printobserver(CardObserver):
|
||||
|
||||
def update(self, observable, (addedcards, removedcards)):
|
||||
for card in addedcards:
|
||||
|
||||
SELECT_GUID= [0xFF, 0xCA, 0x00, 0x00, 0x00]
|
||||
print "+Inserted: ", toHexString(card.atr)
|
||||
|
||||
try:
|
||||
card.connection = card.createConnection()
|
||||
card.connection.connect()
|
||||
|
||||
# Request UID - Unique Identifier
|
||||
response, sw1, sw2 = card.connection.transmit(SELECT_GUID)
|
||||
|
||||
except Exception as e:
|
||||
print str(e)
|
||||
continue
|
||||
|
||||
# convert UID to hex-string and remove whitespaces
|
||||
send= toHexString(response).replace(' ', '')
|
||||
|
||||
try:
|
||||
# Send UID to active window
|
||||
subprocess.Popen(['xdotool', 'type', send])
|
||||
except OSError as e:
|
||||
print str(e)
|
||||
|
||||
for card in removedcards:
|
||||
print "-Removed: ", toHexString(card.atr)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cardmonitor= CardMonitor()
|
||||
cardobserver= printobserver()
|
||||
cardmonitor.addObserver(cardobserver)
|
||||
|
||||
try:
|
||||
c= Condition()
|
||||
c.acquire()
|
||||
c.wait()
|
||||
except KeyboardInterrupt as e:
|
||||
cardmonitor.deleteObserver(cardobserver)
|
||||
|
Loading…
Reference in New Issue