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
키보드의 단축키를 누르면 명령이 즉시 실행되고 (계속) 키보드를 누르고 있는 키가 코드의 키를 방해하기 때문에 필요합니다. 어쩌면 이것이 귀하의 경우에도 문제가 될까요?