我试图创建一个简单的python程序,它将检测我的键盘或鼠标是否空闲,如果是这样,移动鼠标..这是为了避免macbook上的空闲注销超时..我我们的雇主推行的政策不能改变这些设置。它设置为3分钟非常烦人。我有它的鼠标不活动,但不是键盘
如果没有发生键盘活动,我将如何使用或使用哪个库来检测?
#!/usr/bin/env python
import pyautogui
import time
from random import randrange
def timer():
get_time = int(time.time())
return get_time
def main():
while True:
snapshot = { "time" : timer(), "position" : pyautogui.position() }
time.sleep(5)
if snapshot["position"] == pyautogui.position():
pyautogui.moveTo(400,randrange(1,50))
else:
pass
main()
答案 0 :(得分:0)
我在这里做了类似的事情https://gitlab.com/shakerloops/shakerloops
但我认为我没有发现关键事件。
即便如此,理论上你可以使用pygame或wxpython中的keyevent。两者都可以检测键盘事件而无需实际启动GUI。例如:
https://gitlab.com/makerbox/alluvial/raw/master/usr/local/bin/alluvial/alluvial.py
这两个组合应该有效!
答案 1 :(得分:0)
我不知道这是否与您的情况有关,我知道它并不像我在 Windows 上那样完全适用于 Mac,但我会告诉您我是如何管理它的。
原因是虽然键盘包适用于mac,但鼠标包仅适用于windows和Unix。
您提到检测鼠标不活动是有效的,我遇到了同样的问题(能够检测鼠标不活动但不能检测键盘不活动),所以我将键盘活动与鼠标活动联系起来。 实际上,这意味着每当我使用键盘时,鼠标都会在不同方向上移动几个像素。这将创建鼠标活动,该活动将向程序发出键盘处于活动状态的信号(我选择了一些我经常用来让鼠标四处移动的键)。
import mouse
import keyboard
keyboard.add_hotkey("space", lambda: mouse.move(4, 5, absolute=False, duration=0.01))
keyboard.add_hotkey("ctrl", lambda: mouse.move(-2, -8, absolute=False, duration=0.01))
keyboard.add_hotkey("shift", lambda: mouse.move(3, -4, absolute=False, duration=0.01))
keyboard.add_hotkey("alt", lambda: mouse.move(-7, 2, absolute=False, duration=0.01))
keyboard.add_hotkey("e", lambda: mouse.move(-3, -6, absolute=False, duration=0.01))