Get python versions up-to-date.
I can't remember now why I did all this, but I did. It's fine.
This commit is contained in:
parent
7664f34de5
commit
a3cb632170
43
capture.py
43
capture.py
|
@ -41,40 +41,39 @@ def main() -> None:
|
||||||
print("You cannot specify 'delay' and 'trigger'")
|
print("You cannot specify 'delay' and 'trigger'")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
now = time.time()
|
|
||||||
_do_delay(args.delay)
|
_do_delay(args.delay)
|
||||||
_do_trigger(args.trigger)
|
_do_trigger(args.trigger)
|
||||||
|
LOGGER.info("Capturing...")
|
||||||
|
now = time.time()
|
||||||
# Add dummy events to lock in the time start
|
# Add dummy events to lock in the time start
|
||||||
event_queue = queue.Queue()
|
with open(args.output, "w") as output:
|
||||||
event_queue.put(
|
hook = functools.partial(_on_hook, now, output)
|
||||||
mouse.ButtonEvent(
|
|
||||||
event_type=mouse.UP,
|
|
||||||
button=mouse.RIGHT,
|
|
||||||
time=now,
|
|
||||||
))
|
|
||||||
event_queue.put(
|
|
||||||
keyboard.KeyboardEvent(
|
|
||||||
event_type=keyboard.KEY_UP,
|
|
||||||
name=" ",
|
|
||||||
scan_code=57,
|
|
||||||
time=now,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
hook = functools.partial(_on_hook, event_queue)
|
|
||||||
keyhook = keyboard.hook(hook)
|
keyhook = keyboard.hook(hook)
|
||||||
mousehook = mouse.hook(hook)
|
mousehook = mouse.hook(hook)
|
||||||
print("Capturing...")
|
|
||||||
try:
|
try:
|
||||||
keyboard.wait(args.trigger)
|
keyboard.wait(args.trigger)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
keyboard.unhook(keyhook)
|
keyboard.unhook(keyhook)
|
||||||
mouse.unhook(mousehook)
|
mouse.unhook(mousehook)
|
||||||
|
LOGGER.info("Wrote %s", args.output)
|
||||||
|
|
||||||
_save_events(event_queue, args.output)
|
def _on_hook(start, output, event):
|
||||||
|
|
||||||
def _on_hook(event_queue, event):
|
|
||||||
LOGGER.debug(str(event))
|
LOGGER.debug(str(event))
|
||||||
event_queue.put(event, block=False)
|
relative_time = event.time - start
|
||||||
|
if isinstance(event, keyboard.KeyboardEvent):
|
||||||
|
output.write(
|
||||||
|
f"{relative_time},k,{event.event_type},{event.scan_code},{event.name}\n")
|
||||||
|
elif isinstance(event, mouse.ButtonEvent):
|
||||||
|
output.write(
|
||||||
|
f"{relative_time},mb,{event.event_type},{event.button}\n")
|
||||||
|
elif isinstance(event, mouse.MoveEvent):
|
||||||
|
output.write(
|
||||||
|
f"{relative_time},mm,{event.x},{event.y}\n")
|
||||||
|
elif isinstance(event, mouse.WheelEvent):
|
||||||
|
output.write(
|
||||||
|
f"{relative_time},mw,{event.delta}\n")
|
||||||
|
else:
|
||||||
|
raise ValueError(f"{event} is not recognized")
|
||||||
|
|
||||||
def _do_delay(delay: int) -> None:
|
def _do_delay(delay: int) -> None:
|
||||||
if not delay:
|
if not delay:
|
||||||
|
|
|
@ -73,6 +73,7 @@ def _play_event_mouse(event) -> None:
|
||||||
mouse.press(event.button)
|
mouse.press(event.button)
|
||||||
elif isinstance(event, mouse.MoveEvent):
|
elif isinstance(event, mouse.MoveEvent):
|
||||||
mouse.move(event.x, event.y, absolute=True)
|
mouse.move(event.x, event.y, absolute=True)
|
||||||
|
# mouse.move(event.x, event.y)
|
||||||
elif isinstance(event, mouse.WheelEvent):
|
elif isinstance(event, mouse.WheelEvent):
|
||||||
mouse.wheel(event.delta)
|
mouse.wheel(event.delta)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue