Reputation: 46381
Let's say you want to open myapp.exe
, open the 3rd menu, then choose the 2nd menu item (i.e. like a user would do with the keyboard or mouse), and then in the dialog window, choose the 2nd button.
pyahk
and pyautogui
seem to offer this, but in a rather "low-level" way, by simulating clicks:
pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')
How to do interact with a Windows GUI in a higher-level way with Python?
Example:
window = gui.open('myapp.exe')
window.menu_open(3).choose_item(2)
child_window = window.wait_for_dialog()
child_window.buttons[1].click()
Upvotes: 6
Views: 13927
Reputation: 6857
pywinauto seems to be much more in-line with what you want - it utilizes the Win32 API and MS UI Automation among other things.
Here is an example of automation of the notepad application:
from pywinauto.application import Application
app = Application().start("notepad.exe")
app.UntitledNotepad.menu_select("Help->About Notepad")
app.AboutNotepad.OK.click()
app.UntitledNotepad.Edit.type_keys("pywinauto Works!", with_spaces = True)
Upvotes: 12