如何使用Python在Windows应用程序中获取正确的右键上下文菜单,不设置光标位置并且不聚焦于该Windows应用程序。
上下文菜单不是资源管理器上下文菜单,而是Windows应用程序右键上下文菜单。
上下文菜单不是资源管理器上下文菜单,而是Windows应用程序右键上下文菜单。
以下是Notepad的示例:
app.UntitledNotepad.Edit.Click(button='right') # works
app.PopupMenu.MenuSelect('Paste') # seems not working when Notepad is not in focus
# though it works when app.UntitledNotepad.SetFocus() is called before
app.PopupMenu.MenuSelect('Paste')
在这种情况下可能无法工作,因为很可能只有焦点窗口才能接收WM_COMMAND
。要使其工作,请使用app.PopupMenu.MenuItem('Paste').ClickInput()
,尽管您的应用程序窗口将以任何方式获得焦点。
所以最终有两个可行的示例。第一个是:
app.UntitledNotepad.SetFocus()
app.UntitledNotepad.Edit.Click(button='right')
app.PopupMenu.MenuSelect('Paste')
app.UntitledNotepad.Edit.Click(button='right')
app.PopupMenu.MenuItem('Paste').ClickInput()
app.UntitledNotepad.Edit.Click(button='right')
正常工作,但下一个命令app.PopupMenu.MenuSelect('Paste')
会将记事本窗口置于焦点。您是否遇到了同样的问题? - Vasily Ryabov