Python 将密钥发送到后台应用程序

Python 将密钥发送到后台应用程序,python,python-3.x,automation,pywin32,pywinauto,Python,Python 3.x,Automation,Pywin32,Pywinauto,我正在尝试向后台运行的应用程序发送密钥。我想将“Alt+f+a”发送到后台应用程序。我尝试从pywinauto中键入键('%fa'),但这会将窗口带到前台,我希望它保持在后台 以下是我目前拥有的一些信息: app = Application(backend="win32").connect(path=exePath) # Open Save As win = app.window(title_re=appTitle) win.wait("enabled"

我正在尝试向后台运行的应用程序发送密钥。我想将“Alt+f+a”发送到后台应用程序。我尝试从
pywinauto
中键入键('%fa'),但这会将窗口带到前台,我希望它保持在后台

以下是我目前拥有的一些信息:

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
使用
键入\u键('%fa',set\u front=False)
将命令发送到活动窗口。因此,我使用VsCode作为我的文本编辑器,“Alt+f+a”被发送到那里,而不是目标应用程序

我尝试使用
发送按键()
而不是
键入按键()
,但这并没有完成命令。它确实在后台发送“Alt+f”,但不发送“a”。我尝试过在之后立即调用'Alt+f'然后调用'Alt+a'(并且有一个时间延迟),但是发送另一个'Alt'只会关闭打开的文件菜单

在我的搜索过程中,我从
win32gui
中看到了
PostMessage()
,但未能使其正常工作。

尝试将参数集发送到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)
或者尝试以下方法: 就像描述中说的那样,它以静默方式发送击键^ ^

尝试将参数set\u 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)
或者尝试以下方法:
就像上面描述的那样,它会无声地发送击键^

你可以尝试
赢。发送击键({VK_-MENU-DOWN}fa{VK_-MENU-UP}”)
按住Alt键2个符号,然后释放它。

你可以尝试
赢。发送击键({VK_-MENU-DOWN}fa VK_-MENU-UP})
按住Alt键2个符号,然后将其释放。

打开“文件”菜单使“Alt+f”起作用,但没有超过该值。键入键设置前景参数或发送键方法是哪一种?我已经用set_前台参数send_keystokes的一个例子编辑了我的答案,它只会进入'Alt+f',但会在后台运行。键入_keys完成命令,但将窗口带到前台。即使设置了_foreground=False?我已经编辑了我的答案,您现在可以使用set_foreground=False将密钥发送到活动窗口,而不再发送到目标应用程序。所以它在我的文本编辑器中执行“Alt+f+a”。这打开了“文件”菜单,所以“Alt+f”起作用,但没有超过。键入键设置前景参数还是发送键方法?我已经用set_前台参数send_keystokes的一个例子编辑了我的答案,它只会进入'Alt+f',但会在后台运行。键入_keys完成命令,但将窗口带到前台。即使设置了_foreground=False?我已经编辑了我的答案,您现在可以使用set_foreground=False将密钥发送到活动窗口,而不再发送到目标应用程序。所以它在我的文本编辑器中执行“Alt+f+a”。嗯。。。您可以尝试
send_击键(“{VK_MENU DOWN}fa{VK_MENU UP}”)
按住Alt键2个符号,然后释放它。成功了!非常感谢。您介意将此作为答案发布,以便我可以接受您的解决方案吗@瓦西里亚博姆。。。您可以尝试
send_击键(“{VK_MENU DOWN}fa{VK_MENU UP}”)
按住Alt键2个符号,然后释放它。成功了!非常感谢。您介意将此作为答案发布,以便我可以接受您的解决方案吗@瓦西里亚波夫