首页 > 解决方案 > 当使用 Autokey 按下某个键时,如何停止 while 循环?

问题描述

我正在尝试在 Linux Mint 上使用Autokey(不是常规 Python)编写一个小脚本,该脚本按下一个键并在按下另一个特定键后停止,但在按下此特定键后我无法让它停止循环。

我得到了循环工作,但我不能让它停止。

import time
a = True
b = keyboard.press_key('s')
keyboard.release_key('s')
while a:
    keyboard.send_key("a", repeat=5)
    time.sleep(2)
    if b:
        break

所以这会无限期地输出字母“a”,在我按“s”后它不会停止,我不知道我做错了什么

我阅读了有关 while 函数和 break 的信息,但我发现的所有示例都是在达到某个数字后循环停止,这些数字示例与我尝试使用这种脚本实现的不同,所以我希望有人可以帮助我弄清楚这一点。

标签: pythonautokey

解决方案


您将不得不为此使用键盘模块,因为press_key用于“按下”不检测的键。

如果你还没有安装键盘,你可以通过 cmd 来安装, pip install keyboard

之后您可以在python中添加代码如下,按“q”将打印“a”5次,按“s”将停止程序。

import keyboard
while True: 
   if keyboard.is_pressed('q'):  # pressing q will print a 5 times
      for i in range(5):
         print("a")
      break  
   elif keyboard.is_pressed('s'): # pressing s will stop the program
      break

推荐阅读