python非活动系统,检测键盘活动

时间:2016-01-27 01:20:43

标签: python

我试图创建一个简单的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()

2 个答案:

答案 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))