【问题标题】:Execute a keybind on a different application from python script在与 python 脚本不同的应用程序上执行键绑定
【发布时间】:2019-03-02 17:37:02
【问题描述】:

这有点难以解释。也许结果就在那里,但我找不到。

简单地说;我想通过 Python 在我的桌面 (Windows) 上运行的程序上运行热键。

我有一个 3rd 方程序,我已为其分配了某些热键/键绑定。例如,当按下 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

我需要的是在其他程序上执行热键。

我查看了 os 模块,看看是否有什么可以帮助我,但找不到任何东西。

【问题讨论】:

    标签: python python-3.x key-bindings hotkeys pywinauto


    【解决方案1】:

    使用 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}')  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2020-12-04
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多