Pywinauto

Latest version: v0.6.9

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

Scan your dependencies

Page 3 of 6

0.5.0

------------------------------------------------------------------
30-June-2015

* 64-bit Python and 64-bit apps support (but 32-bit Python is recommended for 32-bit apps)

* Python 2.x/3.x compatibility

* Added pyWin32 dependency (silent install by pip for 2.7 and 3.1+)

* Improvements for Toolbar, TreeView, UpDown and DateTimePicker wrappers

* Improved ``best_match`` algorithm allows names like ``ToolbarFile``

* Clicks can be performed with pressed Ctrl or Shift

* Drag-n-drop and scrolling methods (DragMouse, DragMouseInput, MouseWheelInput)

* Improved menu support: handling OWNERDRAW menu items; access by command_id (like ``$23453``)

* Resolved issues with py2exe and cx_freeze

* ``RemoteMemoryBlock`` can now detect memory corruption by checking guard signature

* Upgraded ``taskbar`` module

* ``sysinfo`` module for checking 32-bit or 64-bit OS and Python

* ``set_foreground`` flag in ``TypeKeys`` method for typing into in-place controls

* flags ``create_new_console`` and ``wait_for_idle`` in ``Application.start`` method

0.4.0

------------------------------------------------------------------
03-April-2010

* Gracefully Handle dir() calls on Application or WindowSpecification objects
(which used hang for a while as these classes would search for windows
matching __members__, __methods__ and __bases__). The code now checks for
any attribute that starts with '__' and ends with '__' and raises
AttributeError immediately. Thanks to Sebastian Haase for raising this.

* Removed the reference to an Application object in WindowSpecification.
It was not used in the class and made the class harder to use.
WindowSpecification is now more useful as a utility class.

* Add imports of application.WindowSpecification and application.Application
to pywinauto.__init__.py so that these classes can be used more easily
(without having to directly import pywinauto.application). Thanks again to
Sebastian Haase.

* Added a function to empty the clipboard (thanks to Tocer on Sourceforge)

* Use 'SendMessageTimeout' to get the text of a window. (SendMessage will hang
if the application is not processing messages)

* Fixed references to PIL.ImageGrab. PIL add's it's module directly to the
module path, so it should just be referenced by ImageGrab and not
PIL.ImageGrab.

* Use AttachThreadInput + PostMessage rather than SendMessageTimeout to send
mouse clicks.

* Fix how timeout retry times are calculated in timings.WaitUntil() and
timings.Wait

* Fixed some issues with application.Kill_() method, highlighted due to the
changes in the HwndWrapper.Close() method.

* Fix writing images to XML. It was broken with updates to PIL that I had not
followed. Changed the method of knowing if it is an image by checking for
various attributes.

* Renamed WindowSpecification.(Ww)indow() to ChildWindow() and added
deprecation messages for the other functions.

* Improved the tests (fixed test failures which were not pywinauto issues)

0.3.9

------------------------------------------------------------------
27-November-2009

* Major change this release is that Sendkeys is no longer a requirement!
A replacement that supports Unicode is included with pywinauto. (hopefully
soon to be released as a standalone module). Please note - this is still
quite untested so this release should be treated with some care..

* Made sure that default for WindowSpecification.Window_() was to look
for non top level windows. The defaults in find_windows() had been
changed previously and it now needed to be explicitly overridden.

* Fixed a missing reference to 'win32defines' when referencing WAIT_TIMEOUT
another typo of false (changed to False)

* Removed the restriction to only get the active windows for the process,
now it will be possible to get the active windows, even if a process is
not specified.
From http://msdn.microsoft.com/en-us/library/ms633506%28VS.85%29.aspx
it gets the active window for the foreground thread.

* Hopefully improved Delphi TreeView and ListView handling (added window
class names as supported window classes to the appropriate classes).

* Added support for running UI tests with reference controls. (requried
for some localization tests)

* Various PyLint and PEP8 fixes made.

0.3.8

------------------------------------------------------------------
10-March-2009

* Fixed toolbar button pressing - This required for
HwndWrapper.NotifyParent() to be updated (to accept a new
ID parameter)

* Fixed a bug wherea listview without a column control would
make pywinauto fail to capture the dialog.

* Converted documenation from Pudge generated to Sphinx Generated

* Added some baic support for Pager and Progress controls
(no tests yet)

* Added some more VB 'edit' window classes

* Added some more VB 'listbox' window classes

* Added some more VB 'button' window classes

* Ensured that return value from ComboBoxWrapper.SelectedIndices
is always a tuple (there was a bug where it would sometimes be
a ctypes array)

* Changed default for finding windows to find disabled windows
as well as enabled ones (previous was to find enabled windows only)
(note this may impact scripts that relied on the previous
setting i.e. in cases where two dialogs have the same title!)

* Much better handling of InvalidWindowHandle during automation
runs. This could be raised when a closing window is still available
when the automation was called, but is gone half way through
whatever function was called.

* Made clicking more robust by adding a tiny wait between each
SendMessageTimeout in _perform_click().

* Added attributes ``can_be_label`` and ``has_title`` to ``HwndWrapper``
and subclasses to specify whether a control can act as a label for
other controls, and whether the title should be used for identifying
the control. If you have created your own HwndWrapper subclasses you
may need to override the defaults.

* Added a ``control_id`` parameter to find_windows which allows
finding windows based off of their control id's

* Added a FriendlyClassName method to MenuItem

* Split up the functions for button truncation data

* Commented out code to get a new font if the font could not
be recovered

* Moved code to get the control font from Truncation test to
handleprops

* Added a function to get the string representation of the
bug. (need to refactor PrintBugs at some point).

* Fixed a variable name (from fname -> font_attrib as fname
was not a defined variable!)

* Forced some return values from MissingExtraString test
to be Unicode

* Fixed the MiscValues test (converted to Unicode and
removed some extraneous characters)

* Updated the path for all unittests

* Made two unit tests sligthly more robust and less dependent
on computer/app settings

* Updated timing settings for unit tests

* Updated the examples to work in dev environment.

0.3.7

------------------------------------------------------------------
10-April-2007

* Added Timings.WaitUntil() and Timings.WaitUntilPasses() which
handle the various wait until something in the code. Also
refactored existing waits to use these two methods.

* Fixed a major Handle leak in RemoteMemorBlock class (which is
used extensively for 'Common' controls. I was using OpenHandle
to open the process handle, but was not calling CloseHandle()
for each corresponding OpenHandle().

* Added an active_() method to Application class to return the
active window of the application.

* Added an 'active' option to WindowSpecification.Wait() and
WaitNot().

* Some cleanup of the clipboard module. GetFormatName()
was improved and GetData() made a little more robust.

* Added an option to findwindows.find_windows() to find only
active windows (e.g. active_only = True). Default is False.

* Fixed a bug in the timings.Timings class - timing values are
Now accessed through the class (Timings) and not through the
intance (self).

* Updated ElementTree import in XMLHelpers so that it would work
on Python 2.5 (where elementtree is a standard module) as well
as other versions where ElementTree is a separate module.

* Enhanced Item selection for ListViews, TreeViews - it is now
possible to pass strings and they will be searched for. More
documentation is required though.

* Greatly enhanced Toolbar button clicking, selection, etc.
Though more documentation is required.

* Added option to ClickInput() to allow mouse wheel movements
to be made.

* menuwrapper.Menu.GetProperties() now returns a dict like all other
GetProperties() methods. This dict for now only has one key
'MenuItems' which contains the list of menuitems (which had been
the previous return value).

0.3.6

------------------------------------------------------------------
28-July-2006

* Added parameter to ``_treeview_item.Rectangle()`` to have an option
to get the Text rectangle of the item. And defaulted to this.

* Added ``_treeview_item.Click()`` method to make it easy to click
on tree view items.

* Fixed a bug in ``TreeView.GetItem()`` that was expanding items
when it shouldn't.

* Added ``HwndWrapper.Scroll()`` method to allow scrolling. This
is a very minimal implementation - and if the scrollbars are
implemented as separate controls (rather then a property of a
control - this will probably not work for you!). It works for
Notepad and Paint - that is all I have tried so far.

* Added a call to ``HwndWrapper.SetFocus()`` in
``_perform_click_input()`` so that calls to
``HwndWrapper.ClickInput()`` will make sure to click on the
correct window.

Page 3 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.