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
、キーボードのショートカットを押すとコマンドがすぐに実行され(続行)キーボードを押しているキーがコードのキーを妨げるために必要です。たぶんこれがあなたの場合でも問題になりますか?