Linux使用keybindings终止自动密钥脚本

2024-09-29 19:28:34 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,所以我对我的elementaryOS设备上的自动密钥应用程序是新的,我只是在玩一些自定义脚本。在

我确实觉得奇怪的是没有简单的选项来终止正在运行的脚本。在

那么,有没有什么方法可以达到这个目的呢。在

原谅你的无能。_. 在


Tags: 方法目的脚本应用程序选项密钥elementaryos
1条回答
网友
1楼 · 发布于 2024-09-29 19:28:34

目前还没有这样的方法。在

Autokey使用一种简单的机制并发运行脚本:每个脚本都在单独的Python线程中执行。它使用this wrapper来运行使用ScriptRunner类的脚本。 有一些方法可以杀死任意运行的Python线程,但是这些方法既不是很好,也不是很简单。您可以在这里找到这个问题的一般情况的答案:»Is there any way to kill a Thread in Python?«

有一种很好的可能性,但它并不简单,需要脚本的支持。您可以使用全局脚本存储»向脚本发送«a停止信号。可以在here找到API文档:

假设,这是一个要中断的脚本:

#Your script
import time
def crunch():
    time.sleep(0.01)
def processor():
    for number in range(100_000_000):
        crunch(number)
processor()

将停止脚本绑定到热键:

^{pr2}$

并修改脚本以轮询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()

您应该向每个热的或长时间运行的代码路径添加这种停止检查。 如果脚本中出现死锁,这将不会有帮助。在

相关问题 更多 >

    热门问题