Skip to main content

Get selected files and folders in Windows

Project description

pywinselect

PyPI version Python versions License: MIT

Get selected files and folders in Windows.

Installation

pip install pywinselect

What it does

pywinselect detects which files or folders you have selected in Windows, regardless of where they are.

It works in:

  • File Explorer - Any open Explorer window
  • Desktop - Files and folders selected on your desktop

Returns absolute paths to everything selected. If nothing is selected, returns an empty list.

Why use it

When building automation tools, you often need to know what the user has selected. Without this library, you'd have to:

  • Write 100+ lines of win32 API code
  • Handle File Explorer and Desktop separately
  • Deal with clipboard backup/restore
  • Debug why it doesn't work on Desktop

pywinselect solves this in one line.

Use cases

  • Stream Deck scripts - Create buttons that act on selected files
  • Keyboard macros - Automate repetitive file operations
  • Custom context menus - Build tools that work with selections
  • Productivity apps - Quick actions on currently selected items
  • Batch processing - Process whatever the user has selected

Usage

from pywinselect import get_selected

# Get all selected items (Desktop + Explorer)
files = get_selected()

# Filter by type
only_files = get_selected(filter_type="files")
only_folders = get_selected(filter_type="folders")

# Get selection from specific location
desktop_only = get_selected(only_desktop=True)
explorer_only = get_selected(only_explorer=True)

API

get_selected(filter_type=None, only_desktop=False, only_explorer=False) -> list[str]

Returns list of absolute paths to selected items.

Parameters:

  • filter_type (optional): Filter results by type
    • None - Return both files and folders (default)
    • "files" - Return only files
    • "folders" - Return only folders
  • only_desktop (optional): If True, only get selection from Desktop
  • only_explorer (optional): If True, only get selection from File Explorer

Returns:

  • list[str] - Paths to selected files/folders
  • [] - Empty list if nothing is selected

Raises:

  • ValueError - If both only_desktop and only_explorer are True

Examples:

>>> get_selected()
['C:\\Users\\John\\file.txt', 'C:\\Users\\John\\Documents']

>>> get_selected(filter_type="files")
['C:\\Users\\John\\file.txt']

>>> get_selected(filter_type="folders")
['C:\\Users\\John\\Documents']

>>> get_selected(only_desktop=True)
['C:\\Users\\John\\Desktop\\file.txt']

>>> get_selected(only_explorer=True)
['C:\\Users\\John\\Downloads\\file.txt']

>>> get_selected(only_desktop=True, only_explorer=True)
ValueError: Cannot set both only_desktop and only_explorer to True

How it works

Uses official Windows Shell COM APIs (IShellView, IDataObject) - the same interfaces Windows Explorer uses internally.

Safe by design:

  • Read-only operations
  • No keyboard simulation
  • No clipboard modifications
  • No system state changes

Requirements

  • Python 3.10+
  • Windows
  • pywin32

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pywinselect-0.2.1.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pywinselect-0.2.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file pywinselect-0.2.1.tar.gz.

File metadata

  • Download URL: pywinselect-0.2.1.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for pywinselect-0.2.1.tar.gz
Algorithm Hash digest
SHA256 610ea4a0e692c1f94a5df20d7182858925dfceb0dcb53567b40c88f8c63f359c
MD5 6060ed1925c872a20b97e93fb0e2eb6c
BLAKE2b-256 96350c3be5360b0845f897715670f5ecffa52e95d2e969c395f66fec5745d6fe

See more details on using hashes here.

File details

Details for the file pywinselect-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pywinselect-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for pywinselect-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2196aeae49c798d75201b557625b306961ff80aeab7c794a92ed0ed6f050bc4e
MD5 fd51a84b56711632be814a533e19b4ba
BLAKE2b-256 48f6ec63d25af4f5ee2632d354b1d3c924a59445d591d7c1c349e9c7e1b6cba0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page