如何编写脚本自动关闭活动窗口?

如何编写脚本自动关闭活动窗口?

我正在为自动键编写脚本,有一次我需要自动键来关闭活动窗口,但找不到如何执行此操作。

我尝试让 autokey 按下autokey 中的alt+f4组合键,但这不起作用,因为 autokey显然不允许访问系统范围的键盘快捷键。因此我不知道如何关闭窗户。

(我正在配置 Quod Libet 以使其更适合我个人使用,并尝试通过使用一个简单的 + 激活脚本替换关闭“编辑标签”窗口 > 选择下一个音乐文件 > 打开一个新的“编辑标签”窗口的组合来简化shift标签right编辑过程。)

有任何想法吗?

答案1

不知道这是否适用于任何窗口,但keyboard.send_keys("<ctrl>+w")使用 Quod Libet 给了我想要的结果。

答案2

import subprocess
p2 = subprocess.Popen("killall main") # main its a example

适用于我和我使用操作系统 Kubuntu 20.04

然后使用您喜欢的任何热键

答案3

由于应用程序的行为可能大不相同,关闭应用程序窗口可能会产生许多不同的后果,甚至可能导致应用程序终止。因此,最好将每个应用程序作为单独的案例来处理。

如果您无论如何都想通用地执行此操作,则不能依赖任何快捷方式来完成它。

以下是一些可行的策略:

  1. 最简单的方法可能是搜索窗口并通过调用xdotool(使用subprocess()脚本中的调用)命令链将其关闭。这里的技巧是确保窗口的标题足够独特,以确保搜索返回正确的窗口标识符。

  2. 如果您知道稍后要关闭某个特定窗口,请xdotool在首次打开该窗口时使用它来检索其窗口标识符,这样更容易找到。将此窗口标识符保存在文件或 AutoKey 保存的变量中,稍后使用它来告诉xdotool要关闭哪个窗口。

  3. 让 AutoKey 找到并单击x关闭窗口图标(通常位于窗口的右上角)。

    这是可以做到的,但是有点棘手。

    首先,您必须找到x。这里的挑战是,您的屏幕上很可能会出现多个 ,因此单击正确的 非常重要。对于浮动窗口等,它可能并不总是位于相同的绝对屏幕坐标上。

    最好的方法是直接使用visgrepXautomation 包中的 (通过subprocess.check()AutoKey 脚本中的调用)来搜索正确的窗口,然后在x该窗口内搜索 。如果成功,它将返回正确的绝对屏幕坐标,然后您可以使用从回复字符串解析后返回的坐标x单击它。mouse.click_absolute(xcoord, ycoord, 1)visgrep()visgrep

    使用 Xautomation 涉及提前准备要搜索的图像以及一些超出此答案范围的其他工作。

    AutoKey 通过 API 调用与 Xautomation 接口,但它目前不支持嵌套图像搜索功能,因此我们的 API 调用将找到所有 s x,但您必须编写自己的解决方案来确定哪一个是正确的x

由于这不是一个非常简单的问题,也不是一个复制粘贴的解决方案,如果您需要帮助实现它,请发帖吉特

相关内容