【发布时间】:2021-11-25 08:11:50
【问题描述】:
我正在尝试使它在我按下“esc”时暂停,然后在我按下“home”时恢复。那里大约有 90%,但是当我暂停脚本时,“a”按钮仍然起作用,就好像脚本没有暂停一样。我尝试在此脚本的其他位置放置睡眠,但这会由于线程而导致极度滞后。任何帮助将不胜感激。
import time
from threading import Thread
from pynput import keyboard
from pynput.mouse import Button, Controller
from pynput.keyboard import KeyCode
mouse = Controller()
def exit_program():
def on_press(key):
if key == KeyCode.from_char('a'):
mouse.press(Button.right), mouse.release(Button.right)
if str(key) == 'Key.esc':
main.status = 'pause'
print("Paused")
if str(key) == 'Key.home':
main.status = 'run'
print("Resume")
elif str(key) == 'Key.end':
main.status = 'exit'
print("Exit")
exit()
listener = keyboard.Listener(
supress=True,
on_press=on_press)
listener.start()
def main():
main.status = 'run'
while True:
print('running')
time.sleep(1)
while main.status == 'pause':
time.sleep(1)
if main.status == 'exit':
print('Main program closing')
break
Thread(target=main).start()
Thread(target=exit_program).start()
【问题讨论】:
-
在
on_press中你可以在if main.status != 'pause':中运行一些代码 -
这对我有帮助。谢谢!