自定义键盘快捷键不会执行 python 脚本

自定义键盘快捷键不会执行 python 脚本

我正在尝试使用 pyautogui 通过键盘快捷键发出一系列命令。

该脚本如下所示:

#!/usr/bin/python3
import pyautogui
# Keyboard sequence to delete current line of text
pyautogui.press('end')
pyautogui.hotkey("shift", "home")
pyautogui.press('backspace')

如果我通过终端写入sleep 1 && ./pyautoguitest.py并快速切换另一个窗口,它可以正常工作并删除课程器所在的当前行。

然而,当我转到键盘快捷键并绑定Shift + Alt + Backspace到命令时/usr/bin/python3 /home/user/pyautoguitest.py,它会默默地失败......什么也没有发生。

我正在使用 Pop_OS!它应该以与 Ubuntu 上相同的方式处理它。

有没有人尝试过让 pyautogui 使用键盘快捷键?

为了排除运行脚本的权限问题,我给了它 777 权限,因此所有用户都应该能够运行它

更新 ------ 我尝试在 python 脚本中使用日志记录来查看是否有任何失败

#!/usr/bin/python3
import logging
import traceback
logging.basicConfig(filename='/tmp/myapp.log', level=logging.DEBUG, 
                    format='%(asctime)s %(levelname)s %(name)s %(message)s')
logger=logging.getLogger(__name__)

try:
        import pyautogui
        import sys
        pyautogui.press('end')
        pyautogui.hotkey("shift", "home")
        pyautogui.press('backspace')
except Exception as e:
        logger.error(traceback.format_exc())
else:
        logger.error("all clear")

sleep 2 && ./pyautoguitest.py当我使用日志文件执行该文件时,会得到一个all clear条目,表明一切正常,当我通过键盘快捷键执行此操作时,也会发生同样的事情。

很奇怪,当用作键盘快捷键时,就像有东西阻止它运行按键一样

答案1

我最近添加了一个自定义快捷方式来插入电子邮件地址,并使用 xdotool 来插入击键。因此,从包管理器安装包xdotool,并在系统设置中转到快捷方式 - 自定义快捷方式,然后添加新的全局快捷方式(命令/URL)

在那里插入以下命令:sleep 0.3 && xdotool key End Shift+Home Clear

如果您想插入电子邮件:sleep 0.3 && xdotool key t e s t at e x a m p l e period c o m

sleep 0.3是必要的,因为当您按下键盘上的快捷键时,命令将立即执行,并且键盘上(仍然)按下的键会干扰代码中的键。也许这也是您的情况的问题?

相关内容