skip to navigation
skip to content 2.15.2

Windows Routines by Jason R. Coombs

Latest Version: 3.9

Status and License aims to provide a pure-python interface to Windows APIs using ctypes. This package is not designed to be exhaustive, but rather to supply interfaces as they are needed by the contributors. is written by Jason R. Coombs. It is licensed under an MIT-style permissive license.

You can install it with easy_install jaraco.util, or from the mercurial repository with easy_install

Package Contents contains several modules for different purposes. For now, read the source. Eventually, I will put high-level descriptions of the modules here.


You should install this module the normal way using setuptools or distribute.

If you want to monkeypatch the os module to include symlink compatibility, you should add the following to your usercustomize or sitecustomize module:

import as fs; fs.patch_os_module()

Thereafter, you should be able to use os.symlink and os.readlink in Windows Vista and later using the same interface as on Unix.

Note that takes an additional optional parameter target_is_directory, which must be specified if the target is not present and is expected to be a directory once present.


If doesn’t supply the interface you require for your application, consider creating the interface and providing a patch to the author.



  • Fixed constants around power.no_sleep.


  • Improved Python 3 support including working gclip and pclip commands.


  • Added py2exe support to the package.


  • Improvements to file change handling, reducing duplicates.


  • Added no_sleep context manager to the power module.


  • Added add method to the environ RegisteredEnvironments. Use it to add a value to a list of values but only if it’s not already present.


  • Fixed issue in set_unicode_text.


  • Add clipboard.set_unicode_text.


  • Fixed issue where MemoryMap wouldn’t read null bytes.
  • Added security.get_security_attributes_for_user.


  • Added mmap module with MemoryMap class. This class allows the client to specify SECURITY_ATTRIBUTES, which the Python mmap module does not.
  • Added security module with support for security descriptors and security attributes.


  • Added vpn module with support for creating PPTP connections.


  • Added filesystem.SetFileAttributes


  • Fixed import issue in on Python 3.
  • Added cookie module from
  • Fixed issue in filesystem.islink() where a call against a nonexistent file could raise an Exception.


  • Moved timers module from jaraco.util.
  • Added with initial support for Windows Credential Manager.


  • Moved filechange notification from jaraco.util.


  • Added filesystem.GetFileAttributes.
  • Added services module for working with Windows Services (currently uses pywin32).


  • Fixes by wkornewald for issue #1 - Symlink relative path deficiencies.
  • Added
  • Fixed issue where environment changes would stall on SendMessage.
  • SendMessage now uses the correct type for lParam, but will still accept string types.


  • Added module (with get_user_name function).
  • Added get_unicode_text to clipboard module.


  • Added clipboard.set_text function for a simple routine for setting clipboard text.
  • Added support for editing environment variables in a text-editor.
  • Added clipboard.get_html and clipboard.HTMLSnippet for supporting the HTML format from the clipboard.


  • Fixed issue with clipboard handling of null-terminated strings


  • Added eventlog utility
  • Added support for other clipboard formats (including DIB and DIBV5), and now clipboards to proper memory locking while reading the resource
  • Added registry module
  • Moved office module to project


  • Added 2to3 build support - now installs on Python 3
  • Removed default import of into
  • Fixed division operator issue in


  • Added option to enver to remove values from a path or other semi- colon-separated value.
  • Added privilege module.
  • Made a subclass of __builtin__.WindowsError.
  • Added office module with MS Word based PDF Converter.
  • Added early implementation of clipboard support.
  • Added delay option to xmouse.


  • Added monkeypatch for os.symlink and os.readlink.
  • Added find-symlinks command.


  • NB!! Switched the order of the parameters for symlink and link to match the signature found in the os module. This will absolutely break any implementations that worked with prior to 1.5.


  • Added more robust support for symlink support (including a symlink traversal routine that works even when the target is locked). This method uses explicit reparse point parsing, using the new reparse module.
  • Added support for hardlinks.
  • Added for locating loaded modules.
  • Added command line parameters to environ to allow override of default append/replace behavior.
  • Added power monitoring utilities.
  • Began work on GUI testing objects in, based on watsup.
  • Added filesystem.GetBinaryType
  • Added filesystem.SHFileOperation (useful for sending items to a Recycle Bin).
  • Updated enver to support appending to a non-existent variable.
  • Added a ‘show’ option to xmouse
  • Added routines to support the Microsoft Data Protection API (DPAPI).


  • Added -U option to enver


  • Added this documentation
  • Updated the project website to use PYPI directly.
  • Improved deployment support (fixes issues with easy_install)
  • Fixed issue with PATH and PATHEXT handling in enver.


  • Added support for persistent environment variable setting (inspired by


  • Initial release
  • Includes xmouse script for enabling/disabling focus-follows-mouse
File Type Py Version Uploaded on Size (md5) Source 2013-12-02 63KB