Linux -使用键绑定终止AutoKey脚本

z5btuh9x  于 2023-06-29  发布在  Linux
关注(0)|答案(1)|浏览(102)

好吧,我是elementaryOS设备上AutoKey应用程序的新手,我只是在玩一些自定义脚本。
我确实觉得奇怪的是,没有一个简单的选项来终止正在运行的脚本。
那么,有没有一个简单**的方法来实现这一点。
原谅我的无能。._.

taor4pac

taor4pac1#

目前还没有这样的方法。
自动键控使用一种简单的机制来并发运行脚本:每个脚本都在一个单独的Python线程中执行。它使用此 Package 器来运行使用ScriptRunner类的脚本。有一些方法可以杀死任意运行的Python线程,但这些方法既不好也不简单。您可以在Is there any way to kill a Thread?上找到此问题的一般情况的答案
有一个很好的可能性,但它并不是真正的简单,它需要你的脚本支持。您可以使用全局脚本存储向脚本发送stop信号。
假设,这是您要中断的脚本。

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)

修改脚本以检查该值。

import time

def crunch():
    time.sleep(0.01)

def processor():
    for number in range(100_000_000):
        crunch(number)
        if store.GLOBALS.get("STOP", False):
            store.set_global_value("STOP", False)
            break

processor()

您应该将该代码添加到每个热运行或长时间运行的代码路径中。如果您的脚本中出现了死锁,这将无济于事。

相关问题