Выполнить связывание клавиш в другом приложении из сценария Python - PullRequest
0 голосов
/ 27 сентября 2018

Это сложно объяснить.Может быть, результат есть, но я не смог его найти.

Проще говоря;Я хотел бы запускать горячие клавиши в программе, работающей на моем рабочем столе (Windows) через Python.

У меня есть сторонняя программа, которой я назначил определенные горячие клавиши / сочетания клавиш.Например, когда нажаты клавиши Ctrl + Fn5, в этой программе выполняется определенная команда.

Что я хочу сделать с помощью скриптов Python - это выполнить упомянутую горячую клавишу (например, Ctrl + Fn5) в этой программе.(как будто эта программа сфокусировалась на ней, и эти клавиши были нажаты)

Я пытался сделать это через win32com.client.Но сама программа не позволяет эту функцию напрямую через свои библиотеки.Я также попробовал pywinauto, но опять-таки он не предоставляет необходимые библиотеки (пытался анализировать его с помощью других инструментов, таких как swapy).

Ранее я использовал перехват горячих клавиш на python.Но они были предназначены для самого приложения Python.

, например:

def keyPressEvent(self, e):
    if e.modifiers() & Qt.ControlModifier and e.modifiers() & Qt.ShiftModifier and e.key() == Qt.Key_V:
    # do somthing

Мне нужно выполнить горячие клавиши с упором на другую программу.

Iзаглянул в модуль os, чтобы увидеть, есть ли что-нибудь, что могло бы мне помочь, но не смогло найти ничего.

1 Ответ

0 голосов
/ 29 сентября 2018

Используя модули pywinauto, я получил его на работу.Хитрость заключалась в том, чтобы сосредоточиться на самой программе.

from pywinauto.application import Application
from pywinauto.keyboard import SendKeys

app = Application().connect(path='path_to_programs_exe_file')
app_dialog = app.top_window()
app_dialog.maximize()
app_dialog.set_focus()

SendKeys('^{F5}')  
...