全局热键停止Windows脚本

时间:2012-12-13 06:49:22

标签: python

我正在制作一个脚本,它可以控制我的鼠标并在一个简单的无限循环中运行。

def main():
    while True:
        do_mouse_stuff()

由于鼠标控制,点击python窗口并点击ctrl-c很痛苦,所以我一直在寻找一种在windows中实现全局热键的方法。我也是一个相对的Python菜鸟,所以我可能错过了一个明显的答案。我找到的东西:

pyhk - 我得到的最接近的,但是这个模块由于某种原因(可能是我做错了)给我的电脑做了讨厌的事情,它引入了主要的鼠标延迟,完全输入锁定,各种各样的东西我'我不够聪明,无法应对。

pyHook - 跟随tutorial,工作正常,但是无限运行的消息泵和我的while循环似乎是独占运行的,我还没弄明白如何让它工作。

Another Method - 我也发现了这个方法,但是我遇到了与pyHook相同的问题,try循环和我的while循环不能共存。

我试图弄清楚如何将我的循环集成到这些示例中,而不是维持一个单独的循环,但我无法完成这项工作,这可能是由于我的无聊。有人能够让我理解如何使这项工作?

1 个答案:

答案 0 :(得分:-1)

也许使用msvcrt?我不确定它是否是“全局的”,我现在无法测试它,不幸的是,这里有一个检测Escape键(取自this question)并与键盘集成的示例:

import msvcrt

def main():
    while True:
        do_mouse_stuff()

        # Check if `Esc` has been pressed
        if msvcrt.kbhit() and msvcrt.getch() == chr(27).encode():
            aborted = True
            break