如果某个键被按下,我该如何才能真正休息? [蟒蛇]

时间:2010-08-28 02:22:02

标签: python windows

我的剧本有一段时间是真的:按下F4开始,但我希望它在按下F2时停止,我该怎么办?

我正在尝试这个(使用pyhook)但不起作用......

def onKeyboardEvent(event):
    if event.KeyID == 115:      #F4
        while True:
            selectAndCopy(468,722)
            getClipboard()
            time.sleep(2)
            if event.KeyID == 113:
                break
    return True

2 个答案:

答案 0 :(得分:1)

你没有在你的循环中更改event,所以你不希望event.KeyID突然变为113,而之前是115。

你可能会做的是,在处理F4按键时,启动一个每两秒执行一次selectAndCopy的计时器。当您通过F2击键获得另一个事件时,请终止计时器。

看起来像这样:

def onKeyboardEvent(event):
    if event.KeyID == 115:      #F4
        startTimer(doTimer, 2)
    if event.KeyID == 113:
        stopTimer()

def doTimer():
    selectAndCopy(468,722)
    getClipboard()

您必须提供或查找startTimer()stopTimer()的实施。

答案 1 :(得分:0)

制作

的关键事件
  1. 使用F4更改变量 True 如果变量仍为True,请执行新的计时器事件 例如在Tkinter

    mylabel.after(2000,process)#process是做你的东西的功能

  2. 使用F2 更改变量 False 取消计时器(after_cancel)