jaraco.windows /

Filename Size Date modified Message
37 B
685 B
5.5 KB
29 B
1.6 KB


Status and License

jaraco.windows 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.

jaraco.windows 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 jaraco.windows==dev.

Package Contents

jaraco.windows 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 jaraco.windows.filesystem 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 jaraco.windows.filesystem.symlink 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 jaraco.windows doesn't supply the interface you require for your application, consider creating the interface and providing a patch to the author.



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


  • Moved timers module from jaraco.util.
  • Added jaraco.windows.cred 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 jaraco.windows.message.SendMessageTimeout.
  • Fixed issue where environment changes would stall on SendMessage.
  • SendMessage now uses the correct type for lParam, but will still accept string types.


  • Added jaraco.windows.user 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 jaraco.office project


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


  • Added option to enver to remove values from a path or other semi- colon-separated value.
  • Added privilege module.
  • Made jaraco.windows.error.WindowsError 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 jaraco.windows 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 jaraco.windows.lib 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 jaraco.windows.gui.test, 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 enver.py)


  • Initial release
  • Includes xmouse script for enabling/disabling focus-follows-mouse
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.