pywinauto (c) Mark Mc Mahon 2006 Released under the LGPL licence
pywinauto is a set of python modules to automate the Microsoft Windows GUI. At it's simplest it allows you to send mouse and keyboard actions to windows dialogs and controls.
Unzip the pywinauto zip file to a folder. Install the following Python packages ctypes http://starship.python.net/crew/theller/ctypes/ Sendkeys http://www.rutherfurd.net/python/sendkeys/index.html (Optional) PIL http://www.pythonware.com/products/pil/index.htm (Optional) elementtree http://effbot.org/downloads/
To check you have it installed correctly run Python
import application app = application.Application().start_("notepad") app.notepad.TypeKeys("%FX")
Look at the examples provided in test_application.py There are examples in there to work with Notepad and MSPaint.
Note: These examples currently only work on English.
A lot is done through attribute access (getattr) for each class. For example when you get the attribute of an Application or Dialog object it looks for a dialog or control (respectively).
myapp.Notepad # looks for a Window/Dialog of your app that has a title 'similar'
myapp.PageSetup.OK # looks first for a dialog with a title like "PageSetup"
# like "OK"
This attribute resolution is delayed (currently a hard coded amount of time) until it succeeds. So for example if you Select a menu option and then look for the resulting dialog e.g. app.Notepad.MenuSelect("File->SaveAs") app.SaveAs.ComboBox5.Select("UTF-8") app.SaveAs.edit1.SetText("Example-utf8.txt") app.SaveAs.Save.Click()
At the 2nd line the SaveAs dialog might not be open by the time this line is executed. So what happens is that we wait until we have a control to resolve before resolving the dialog. At that point if we can't find a SaveAs dialog with a ComboBox5 control then we wait a very short period of time and try again, this is repeated up to a maximum time (currently 1 second!)
This avoid the user having to use time.sleep or a "WaitForDialog" function.
Python tools
Other scripting language tools
Other free tools
Commercial tools