Once you have installed pywinauto - how do you get going?
Jeff Winkler has created a nice screencast of using pywinauto, you can see it at :
The following examples are included: Note: Examples are language dependent - they will only work on the language of product that they were programmed for. All examples have been programmed for English Software except where highlighted.
Please find below a sample run
C:\>python
Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(1) >>> from pywinauto import application
(2) >>> app = application.Application()
(3) >>> app.Start_("Notepad.exe")
<pywinauto.application.Application object at 0x00AE0990>
(4) >>> app.Notepad.DrawOutline()
(5) >>> app.Notepad.MenuSelect("Edit -> Replace")
(6) >>> app.Replace.PrintControlIdentifiers()
Control Identifiers:
Static - 'Fi&nd what:' (L1018, T159, R1090, B172)
'Fi&nd what:' 'Fi&nd what:Static' 'Static' 'Static0' 'Static1'
Edit - '' (L1093, T155, R1264, B175)
'Edit' 'Edit0' 'Edit1' 'Fi&nd what:Edit'
Static - 'Re&place with:' (L1018, T186, R1090, B199)
'Re&place with:' 'Re&place with:Static' 'Static2'
Edit - '' (L1093, T183, R1264, B203)
'Edit2' 'Re&place with:Edit'
Button - 'Match &case' (L1020, T245, R1109, B265)
'CheckBox2' 'Match &case' 'Match &caseCheckBox'
Button - '&Find Next' (L1273, T151, R1348, B174)
'&Find Next' '&Find NextButton' 'Button' 'Button0' 'Button1'
Button - '&Replace' (L1273, T178, R1348, B201)
'&Replace' '&ReplaceButton' 'Button2'
Button - 'Replace &All' (L1273, T206, R1348, B229)
'Button3' 'Replace &All' 'Replace &AllButton'
Button - 'Cancel' (L1273, T233, R1348, B256)
'Button4' 'Cancel' 'CancelButton'
(7) >>> app.Replace.Cancel.Click()
(8) >>> app.Notepad.Edit.TypeKeys("Hi from Python interactive prompt %s" % str(dir()), with_spaces = True)
<pywinauto.controls.win32_controls.EditWrapper object at 0x00DDC2D0>
(9) >>> app.Notepad.MenuSelect("File -> Exit")
(10) >>> app.Notepad.No.Click()
>>>
Import the pywinauto.application module (usually the only module you need to import directly)
Create an Application instance. All access to the application is done through this object.
We have created an Application instance in step 2 but we did not supply any information on the Windows application it referred to. By using the Start_() method we execute that application and connect it to the Application instance app.
Draw a green rectangle around the Notepad dialog - so that we know we have the correct window.
Select the Replace item from the Edit Menu on the Notepad Dialog of the application that app is connected to. This action will make the Replace dialog appear.
Print the identifiers for the controls on the Replace dialog, for example the 1st edit control on the Replace dialog can be referred to by any of the following identifiers:
app.Replace.Edit
app.Replace.Edit0
app.Replace.Edit1
app.FindwhatEdit
The last is the one that gives the user reading the script aftewards the best idea of what the script does.
Close the Replace dialog. (In a script file it is safer to use CloseClick() rather than Click() because CloseClick() waits a little longer to give windows time to close the dialog.)
Let’s type some text into the Notepad text area. Without the with_spaces argument spaces would not be typed. Please see documentation for SendKeys for this method as it is a thin wrapper around SendKeys.
Ask to exit Notepad
We will be asked if we want to save - Click on the “No” button.