将密钥发送到后台应用程序
Send keys to background application
我正在尝试在后台向应用程序 运行 发送密钥。我想发送 'Alt+f+a' 到后台应用程序。我尝试了 pywinauto
中的 type_keys('%fa')
,但这将 window 带到了前台,我希望它保留在后台。
这是我目前拥有的一些东西:
app = Application(backend="win32").connect(path=exePath)
# Open Save As
win = app.window(title_re=appTitle)
win.wait("enabled", timeout=60)
win.type_keys('%fa') #Sends keys, but brings window to foreground
使用type_keys('%fa', set_foreground=False)
会将命令发送到活动的window。所以,我使用 VsCode 作为我的文本编辑器,'Alt+f+a' 被发送到那里而不是目标应用程序。
我尝试使用 send_keystrokes()
而不是 type_keys()
,但这并没有完成命令。它确实在后台发送 'Alt+f' 但不发送 'a'。我试过调用 'Alt+f' 然后 'Alt+a' 之后立即(并且有时间延迟)但是发送另一个 'Alt' 只是关闭打开的文件菜单。
在我的搜索过程中,我从 win32gui
中看到了 PostMessage()
,但无法正常工作。
尝试将 type_keys 参数 set_foreground 发送到 False
像这样:
app = Application(backend="win32").connect(path=exePath)
# Open Save As
win = app.window(title_re=appTitle)
win.wait("enabled", timeout=60)
win.type_keys('%fa', set_foreground=False)
或试试这个方法:send_keystrokes
就像描述说的那样,它会静默发送击键 ^^
您可以尝试 win.send_keystrokes("{VK_MENU DOWN}fa{VK_MENU UP}")
按住 Alt 2 个符号然后松开。
我正在尝试在后台向应用程序 运行 发送密钥。我想发送 'Alt+f+a' 到后台应用程序。我尝试了 pywinauto
中的 type_keys('%fa')
,但这将 window 带到了前台,我希望它保留在后台。
这是我目前拥有的一些东西:
app = Application(backend="win32").connect(path=exePath)
# Open Save As
win = app.window(title_re=appTitle)
win.wait("enabled", timeout=60)
win.type_keys('%fa') #Sends keys, but brings window to foreground
使用type_keys('%fa', set_foreground=False)
会将命令发送到活动的window。所以,我使用 VsCode 作为我的文本编辑器,'Alt+f+a' 被发送到那里而不是目标应用程序。
我尝试使用 send_keystrokes()
而不是 type_keys()
,但这并没有完成命令。它确实在后台发送 'Alt+f' 但不发送 'a'。我试过调用 'Alt+f' 然后 'Alt+a' 之后立即(并且有时间延迟)但是发送另一个 'Alt' 只是关闭打开的文件菜单。
在我的搜索过程中,我从 win32gui
中看到了 PostMessage()
,但无法正常工作。
尝试将 type_keys 参数 set_foreground 发送到 False
像这样:
app = Application(backend="win32").connect(path=exePath)
# Open Save As
win = app.window(title_re=appTitle)
win.wait("enabled", timeout=60)
win.type_keys('%fa', set_foreground=False)
或试试这个方法:send_keystrokes 就像描述说的那样,它会静默发送击键 ^^
您可以尝试 win.send_keystrokes("{VK_MENU DOWN}fa{VK_MENU UP}")
按住 Alt 2 个符号然后松开。