Pywinauto

Latest version: v0.6.9

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 6

0.3.6b

------------------------------------------------------------------
31-July-2006

* Fixed a bug in how findbestmatch.FindBestMatches was working.
It would match against text when it should not!

* Updated how timings.Timings.Slow() worked, if any time setting
was less then .2 after 'slowing' then set it to .2

0.3.5

------------------------------------------------------------------
24-May-2006

* Moved to a metaclass implementation of control finding. This
removes some cyclic importing that had to be worked around and
other then metaclass magic makes the code a bit simpler.

* Some of the sample files would not run - so I updated them
so they would (Thanks to Stefaan Himpe for pointing this out)

* Disabled saving application data (it was still being saved in
Application.RecordMatch() even if the rest of the application
data code is disabled. This was causing what appeared to be a
memory leak where pywinauto would keep grabbing more and more
memory (especially for controls that contain a lot of
information). Thanks to Frank Martinez for leading me to this).

* Added ListViewWrapper.GetItemRect() to enable retrieving the
rectangle for a particular item in the listview.

* Removed references to _ctrl() method within pywinauto as it
was raising a DeprecationWarning internally even if the user
was not using it.

0.3.4

------------------------------------------------------------------
25-Apr-2006

* The latest version of ctypes (0.9.9.6) removed the code generator
I was using some generated code in win32functions.py (stdcall). I
was not using those functions so I just commented them out.

* Started the process of renaming methods of the ``Application`` and
``WindowSpecification`` classes. I will be converting names to
``UppercaseNames_()``. The trailing ``_`` is to disambiguate the
method names from potential Window titles.

* Updated how print_control_identifiers works so that it now always
prints the disambiguated control name. (even for single controls)

* Added __hash__ to HwndWrapper so that controls could be dictionary
keys.

* Caching various information at various points. For example I cache
how well two pieces of text match. For short scripts this has
little impact - but for larger script it could well have a major
impact.
Also caching information for controls that cannot change
e.g. TopLeveParent, Parent, etc

0.3.3

------------------------------------------------------------------
19-Apr-2006

* Added a wait for the control to be active and configurable
sleeps after 'modifying' actions (e.g. Select, Deselect, etc)

* Fixed Timings.Slow() and Timings.Fast() - they could in certain
circumstances do the opposite! If you had already set a timing
slower or faster then they would set it then they would blindly
ignore that and set their own times. I added functionality that
they will take either the slowest or fastest of the new/current
setting rather then blindly setting to the new value.

* Fixed some hidden bugs with HwndWrapper.CloseClick()

* Fixed a bug in setup.py that would raise an error when no
argument was specified

* Added an argument to HwndWrapper.SendMessageTimeout so that
the wait options could be passed in.

* Added HwndWrapper.Close(), Maximize(), Minimize(), Restore()
and GetShowState().

* Commented out all deprecated methods (will be removed completely
in some future release).

* Added Application.kill_() method - which closes all windows and
kills the application. If the application is asking if you want
to save your changes - you will not be able to click yes or no
and the application will be killed anyway!.

0.3.2

------------------------------------------------------------------
31-Mar-2006

* Fixed the spelling of Stefaan Himpe's name

* Fixed setup.py which was working for creating a distribution but
not for installing it (again thanks to Stefaan for pointing it out!)

0.3.1

------------------------------------------------------------------
30-Mar-2006

* Change calculation of distance in findbestmatch.GetNonTextControlName()
so that it does not need to square or get the square root to
find the real distance - as we only need to compare values - not have
the actual distance. (Thanks to Stefaan Himpe)

* Compiled regular expression patterns before doing the match to
avoid compiling the regular expression for window that is being
tested (Thanks to Stefaan Himpe)

* Made it easier to add your own control tests by adding a file
extra_tests.py which needs to export a ModifyRegisteredTests() method.
Also cleaned up the code a little.

* Updated notepad_fast.py to make it easier to profile (adde a method)

* Changed WrapHandle to use a cache for classes it has matched - this is
to avoid having to match against all classes constantly.

* Changed default timeout in SendMessageTimeout to .001 seconds from .4
seconds this results in a significant speedup. Will need to make this
value modifiable via the timing module/routine.

* WaitNot was raising an error if the control was not found - it should
have returned (i.e. success - control is not in any particular state
because it does not exist!).

* Added ListViewWrapper.Deselect() per Chistophe Keller's suggestion.
While I was at it I added a check on the item value passed in and added
a call to WaitGuiIdle(self) so that the control has a chance to process
the message.

* Changed doc templates and moved dependencies into pywinauto
subversion to ensure that all files were availabe at www.openqa.org and
that they are not broken when viewed there.

* Moved all timing information into the timings.Timings class. There are
some simple methods for changing the timings.

Page 4 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.