Mar-05-2019, 06:28 PM
I have written a simple program that captures keystroke data. I created two functions (on_Press and on_release), I want to write all captured keystrokes data from on_press() & on_release() to a separate excel file every time the enter key is pressed or code executed.
But after executing below code, the program is only writing the "Enter" key data and ignoring the rest.
Any ideas, please?
Thanks
But after executing below code, the program is only writing the "Enter" key data and ignoring the rest.
Any ideas, please?
Thanks
from pynput.keyboard import Key, Listener
from datetime import datetime
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
key_pressed = [0]
key_press_time = [0]
key_released = [0]
key_release_time = [0]
def on_press(key):
global key_pressed, key_press_time, key_released, key_release_time
key_pressed = key
key_press_time = datetime.utcnow().strftime('%M:%S.%f')
return key_pressed, key_press_time
def on_release(key):
global key_pressed, key_press_time, key_released, key_release_time
key_released = key
key_release_time = datetime.utcnow().strftime('%M:%S.%f')
key_dict = {'Key_Pressed':[key_pressed],
'Key_Press_Time':[key_press_time],
'Key_Released':[key_released],
'Key_Release_Time':[key_release_time]}
kd = pd.DataFrame(key_dict)
print(kd)
if key == Key.enter:
writer = ExcelWriter('KeystrokeData.xlsx')
kd.to_excel(writer,'Sheet1',index=False)
writer.save()
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
