mouselogger.py
script for logging all mouse input to logfile
This commit is contained in:
parent
f817dafb66
commit
41dc50bf16
2 changed files with 68 additions and 0 deletions
13
mouselogger/README.md
Normal file
13
mouselogger/README.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
# mouselogger.py
|
||||||
|
|
||||||
|
Script that timestamps and logs all mouse input to file.
|
||||||
|
|
||||||
|
## requirements
|
||||||
|
works on python3.9
|
||||||
|
pynput module `pip install pynput`
|
||||||
|
|
||||||
|
## usage
|
||||||
|
from the commandline:
|
||||||
|
+ `python mouselogger.py` will log all mouse input to default logfile `mouselog.log` in the same folder
|
||||||
|
+ `python mouselogger.py [user-specified logfile]` will instead log to user-specified logfile
|
55
mouselogger/mouselogger.py
Normal file
55
mouselogger/mouselogger.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
from pynput import mouse
|
||||||
|
|
||||||
|
# default logfile
|
||||||
|
logfile="mouselog.log"
|
||||||
|
|
||||||
|
try:
|
||||||
|
sys.argv[1]
|
||||||
|
except IndexError:
|
||||||
|
print("no logfile given, appending to %s" % logfile)
|
||||||
|
else:
|
||||||
|
logfile=sys.argv[1]
|
||||||
|
print("logfile set to %s" % logfile)
|
||||||
|
|
||||||
|
f = open(logfile, "a")
|
||||||
|
print("now logging all mouse input..")
|
||||||
|
|
||||||
|
def on_move(x, y):
|
||||||
|
f.write('{0:.7f} Pointer moved to {1}\n'.format(
|
||||||
|
time.time(), (x, y)))
|
||||||
|
|
||||||
|
def on_click(x, y, button, pressed):
|
||||||
|
f.write('{0:.7f} {1} {2} at {3}\n'.format(
|
||||||
|
time.time(),
|
||||||
|
'Pressed' if pressed else 'Released',
|
||||||
|
button,
|
||||||
|
(x, y)))
|
||||||
|
#if not pressed:
|
||||||
|
# Stop listener
|
||||||
|
# return False
|
||||||
|
|
||||||
|
def on_scroll(x, y, dx, dy):
|
||||||
|
f.write('{0:.7f} Scrolled {1} at {2}\n'.format(
|
||||||
|
time.time(),
|
||||||
|
'down' if dy < 0 else 'up',
|
||||||
|
(x, y)))
|
||||||
|
|
||||||
|
# # Collect events until released
|
||||||
|
# with mouse.Listener(
|
||||||
|
# on_move=on_move,
|
||||||
|
# on_click=on_click,
|
||||||
|
# on_scroll=on_scroll) as listener:
|
||||||
|
# listener.join()
|
||||||
|
|
||||||
|
# ...or, in a non-blocking fashion:
|
||||||
|
listener = mouse.Listener(
|
||||||
|
on_move=on_move,
|
||||||
|
on_click=on_click,
|
||||||
|
on_scroll=on_scroll)
|
||||||
|
listener.start()
|
||||||
|
|
||||||
|
|
||||||
|
input("press ENTER to stop logging")
|
||||||
|
print("ok thanks, logged all mouse input to %s" % logfile)
|
Loading…
Reference in a new issue