Pywinauto

Latest version: v0.6.8

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

Scan your dependencies

Page 1 of 6

0.6.8

--------------------------------------------------------------------
27-October-2019

Enhancements:
* Add ``allow_magic_lookup`` flag for Application and Desktop object. Thanks pakal_!
* Don't duplicate already pressed key in internal list in ``win32_hooks.py``. Thanks TomRobo237_!
* Allow finding an edit box by title (its editable text).
* Add option to send keyboard input for an application which doesn't handle VK_PACKET properly.
Use ``vk_packet=False`` in method ``type_keys``, default value is ``vk_packet=True``. Thanks philmbailey_!

Bug Fixes:
* Fix ctypes.windll usage conflicts with other libraries.
* Minor fixes in top-level ``__init__.py``. Thanks pakal_!
* Fix logging issues in ``remote_memory_block.py``. Thanks TomRobo237_!
* Minor docs improvements. Thanks olesteban_, caoyaxing221_ and nuno-andre_!

.. _pakal: https://github.com/pakal
.. _TomRobo237: https://github.com/TomRobo237
.. _olesteban: https://github.com/olesteban
.. _caoyaxing221: https://github.com/caoyaxing221
.. _nuno-andre: https://github.com/nuno-andre
.. _philmbailey: https://github.com/philmbailey

0.6.7

--------------------------------------------------------------------
07-July-2019

Enhancements:
* Reuse ``ctypes.wintypes`` more to avoid redundant definitions for Win32 API.
* Add method ``EditWrapper.is_editable()`` for "uia" backend.

Bug Fixes:
* Fix corner case with int/long conversion crash while getting text.
* Fix UIA crash: handle InvalidControlType properly.
* Fix menu_select() for one level main menu in WinForms apps.
* Make ``Application`` object non-iterable (iterating was hang).
* Fix type conversion crash in ``GetWindowRect`` (method ``.rectangle()``).
* Fix combo box fluttering/blinking in ``dump_tree() / print_control_identifiers()``.

0.6.6

--------------------------------------------------------------------
03-March-2019

Enhancements:
* Improve support for WinForms and Qt5: ComboBox, ListBox, DataGrid/Table.
* Add an ability to use MFC toolbar buttons by text. Thanks Nebyt_!
* Make method ``kill()`` hard (and fast) by default (can be used with param
``soft=True`` optionally).
* Make ``visible_only=False`` a default option for method ``connect()``
(useful for minimized apps).
* Add an ability to hold or release a key with params ``down`` and ``up``
for ``.type_keys()`` method. See `the improved docs for keyboard module`_
for more details. Thanks badari412_!
* Add method ``windows()`` to class ``Desktop``.
* Add `Remote Execution Guide`_ with all known RDP/VNC/psexec/etc tricks.

Bug Fixes:
* Fix ``UnicodeDecodeError/UnicodeEncodeError`` in several cases
while printing wrapper object representation.
* Add static text to a list of best match names for ``backend="uia"``.
* Fix ``COMError`` for ``runtime_id`` property.
* Fix method ``click()`` for some radio buttons.
* Improve error message when screen is locked.
* Use ``utf-8`` encoding while writing ``dump_tree()`` output to file.
* Remove few incorrect warnings for ``backend="win32"``.
* Fix crash in ``GetWindowRect`` call.
* Fix black screenshot issue with second monitor. Thanks Nebyt_!

.. _badari412: https://github.com/badari412
.. _Nebyt: https://github.com/Nebyt
.. _`Remote Execution Guide`: remote_execution.html
.. _`the improved docs for keyboard module`: code/pywinauto.keyboard.html


0.6.5 Handling Privileges, AutomationID for Win32 etc.
--------------------------------------------------------------------
30-July-2018

Enhancements:
* Check admin privileges for both target app and Python process. This
allows detecting cases when window messages won't work.
* Add ``automation_id`` and ``control_type`` properties
for "win32" backend (the most useful for WinForms). Correct
child_window() keywords are ``auto_id`` and ``control_type``.
* Switch pypiwin32 dependency to pywin32 which became official again.
* New generators ``iter_children()`` and ``iter_descendants()``.
* Add method ``is_checked()`` to "win32" check box.

Bug Fixes:
* Method ``Application().connect(...)`` works better with ``timeout``
argument.
* Fix ``.set_focus()`` for "uia" backend including minimized window case
(issue 443).
* ``maximize()/minimize()`` methods can be chained now.
* Fix passing keyword arguments to a function for decorators
``always_wait_until_passes`` and ``always_wait_until``.
* Use correct types conversion for WaitGuiThreadIdle (issue 497).
* Fix reporting code coverage on Linux.
* Use .format() for logging BaseWrapper actions (issue 471).
* Print warning in case binary type is not determined (issue 387).

0.6.4

--------------------------------------------------------------------
21-January-2018

Bug Fixes:
* Final fix for ``ValueError: NULL COM pointer access``.

Enhancements:
* Multi-threading mode (MTA) for comtypes is enabled by default, if it's not initialized
by another library before importing pywinauto.

* Method ``get_value()`` has been added to EditWrapper in UIA backend.

* Method ``scroll()`` has been added for all UIA controls which have ScrollPattern implemented.

* Added methods ``is_minimized/is_maximized/is_normal/get_show_state`` for UIAWrapper.

* Added handling in-place controls inside ListView control and (row, column) indexing
in a grid-like table mode. Examples: ::

auto_detected_ctrl = list_view.get_item(0).inplace_control()

combo = list_view.get_item(1,1).inplace_control("ComboBox")
combo.select("Item name")

edit = list_view.get_item(3,4).inplace_control("Edit")
edit.type_keys("some text{ENTER}", set_foreground=False)

dt_picker = list_view.get_item(2,0).inplace_control("DateTimePicker")

0.6.3

--------------------------------------------------------------------
03-July-2017
* Improved string representation for all wrapper objects. Thanks airelil_!

* Fixed several sporadic crashes for ``backend="uia"``.

* Fixed several bugs in ``wait/wait_not`` methods:

- Method ``wait('exists')`` doesn't work for ``backend="uia"``. Thanks maollm_!
- Methods ``wait/wait_not`` take ~ default time (5 sec.) instead of customized timeout like 1 sec.

* ``depth`` param can used in a ``WindowSpecification`` now. ``depth=1`` means this control,
``depth=2`` means immediate children only and so on (aligned with ``print_control_identifiers`` method). Thanks dmitrykazanbaev_!

* Significantly improved sending keys to an inactive window silently. Special thanks for antonlarin_! Now 2 methods are available:

- ``send_chars`` is supposed to send character input (this includes ``{Enter}``, ``{Tab}``, ``{Backspace}``) without Alt/Shift/Ctrl modifiers.
- ``send_keystrokes`` is for key input (including key combinations with Alt/Shift/Ctrl modifiers).

* Method ``Application().connect(path='your.exe')`` uses default timeout ``Timings.app_connect_timeout``.
It can accept ``timeout`` and ``retry_interval`` keyword arguments. Thanks daniil-kukushkin_!

* Method ``print_control_identifiers`` is more consistent and minimum 2x faster now! Thanks cetygamer_!

* Fixed subclassing ``Application`` with your own methods. Thanks efremovd_!

* Param ``work_dir`` can be used in ``Application().start(...)``. Thanks efremovd_!

* Class ``Application`` has been enriched with methods ``is_process_running()`` and ``wait_for_process_exit()``. Thanks efremovd_!

* Module ``timings`` uses ``time.clock()`` for Python 2.x and ``time.perf_counter()`` for Python 3.x
so that accident system time change can't affect on your script behavior. Thanks airelil_!

* Added WireShark example. Thanks ViktorRoy94_!

* Now ``print_control_identifiers()`` can dump UI elements tree to a file. Thanks sovrasov_!

* Improved logging actions for ``backend="uia"``, extended example for MS Paint. Thanks ArtemSkrebkov_!

* Extended ``CalendarWrapper`` for ``backend="win32"`` with these methods: ``get_month_delta``,
``set_month_delta`` and ``get_month_range``. Thanks Nikita-K_!

* Added method ``legacy_properties()`` to ``UIAWrapper``. Thanks AsyaPronina_!

* Improved VB6 ListView detection for ``backend="win32"``. Thanks KirillMoizik_!

* Fixed 64-bit specific bug in ``TreeViewWrapper`` for ``backend="win32"``
(``argument 4: <type 'exceptions.OverflowError'>: long int too long to convert``).

.. _airelil: https://github.com/airelil
.. _maollm: https://github.com/maollm
.. _dmitrykazanbaev: https://github.com/dmitrykazanbaev
.. _antonlarin: https://github.com/antonlarin
.. _daniil-kukushkin: https://github.com/daniil-kukushkin
.. _cetygamer: https://github.com/cetygamer
.. _efremovd: https://github.com/efremovd
.. _ViktorRoy94: https://github.com/ViktorRoy94
.. _sovrasov: https://github.com/sovrasov
.. _ArtemSkrebkov: https://github.com/ArtemSkrebkov
.. _Nikita-K: https://github.com/Nikita-K
.. _AsyaPronina: https://github.com/AsyaPronina
.. _KirillMoizik: https://github.com/KirillMoizik

0.6.2

--------------------------------------------------------------------
28-February-2017
* Several bugs were fixed:

- Maximized window is always resized (restored) when calling ``set_focus()``.
- AttributeError: type object '_CustomLogger' has no attribute 'disable'.
- ``print_control_identifiers()`` gets bytes string on Python 3.x.
- Importing pywinauto causes debug messages to appear twice.

* Improved click methods behaviour for Win32 ListView and TreeView:
``ensure_visible()`` is called inside before the click.

* Made ``taskbar.SystemTrayIcons`` localization friendly.

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.