gpt4 book ai didi

python - 如何使用后台线程关闭(在检测到按键时)运行循环的主线程?

转载 作者:行者123 更新时间:2023-11-28 18:58:15 27 4
gpt4 key购买 nike

我正在尝试自动执行以下操作:打开计算器,单击红色的 x 将其关闭。要停止此脚本,我希望它检测何时按下转义键,然后停止脚本执行。

我试过使用两个线程,但是信息没有在它们之间正确传递,并且两个线程都在运行直到它们完成。然后我尝试移动计算器的打开并将其关闭到 main,并在后台保留 escape press detection 线程。现在,我的脚本只打开计算器一次,并且不会再次打开它。

import threading
from pynput import keyboard

global windowOpened
windowOpened = False

def on_press(key):
pass

def on_release(key):
if str(key) == 'Key.esc':
print('Exiting')
return False

def sleeper():
global escapePressed
escapePressed = False
with keyboard.Listener(
on_press = on_press,
on_release = on_release) as listener:
escapePressed = True
listener.join()

t1 = threading.Thread(target = sleeper, name = 'esc_detection_thread')
t1.start()

for i in range(10):
if escapePressed == True:
sys.exit()
else:
#open calculator and close it by clicking the red x

最佳答案

可以使用os._exit方法退出整个过程:

import os

def on_release(key):
if str(key) == 'Key.esc':
print('Exiting')
os._exit(0)

关于python - 如何使用后台线程关闭(在检测到按键时)运行循环的主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55717888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com