目前还没有这种方法。
autokey使用一种简单的机制来同时运行脚本:每个脚本都在单独的python线程中执行。它使用
this wrapper
使用
ScriptRunner
班级。
有一些方法可以杀死运行python线程的任意对象,但这些方法都不是
美好的
也不
简单的
. 你可以在这里找到这个问题的一般情况的答案:
Is there any way to kill a Thread in Python?
γ
有一个
美好的
可能,但事实并非如此
简单的
需要脚本的支持。你可以发送一个
停止
使用全局脚本存储向脚本发送信号。可以找到API文档
here
:
假设这是一个您想要中断的脚本:
#Your script
import time
def crunch():
time.sleep(0.01)
def processor():
for number in range(100_000_000):
crunch(number)
processor()
将这样的停止脚本绑定到热键:
store.set_global_value("STOP", True)
并修改脚本以轮询stop变量的值,如果为真,则中断:
#Your script
import time
def crunch():
time.sleep(0.01)
def processor():
for number in range(100_000_000):
crunch(number)
# Use the GLOBALS directly. If not set, use False as the default.
if store.GLOBALS.get("STOP", False):
# Reset the global variable, otherwise the next script will be aborted immediately.
store.set_global_value("STOP", False)
break
processor()
您应该向每个热的或长时间运行的代码路径添加这样的停止检查。
如果脚本中出现死锁,这不会有所帮助。