docs.rs failed to build window-enumerator-0.4.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
window-enumerator-0.4.1
Window Enumerator
A powerful Rust library for Windows window enumeration with advanced filtering, sorting, and selection capabilities.
Features
- 🔍 Window Enumeration - Discover all visible windows on the system
- 🎯 Advanced Filtering - Filter by PID, title, class name, process name, and file path
- 📊 Multi-criteria Sorting - Sort by PID, title, or position with flexible ordering
- 🎮 Index Selection - Select specific windows using 1-based indices or ranges
- 🛡️ Safe API - Memory-safe wrapper around Windows API
- ⚡ Zero-cost Abstractions - Efficient Rust implementation
Installation
Add this to your Cargo.toml:
[]
= "0.4"
Or with specific features:
[]
= { = "0.4", = ["sorting", "selection"] }
Quick Start
use ;
Usage Examples
Basic Enumeration
use WindowEnumerator;
let mut enumerator = new;
enumerator.enumerate_all_windows?;
// Get all windows
let windows = enumerator.get_windows;
println!;
// Access window by index (1-based)
if let Some = enumerator.get_window_by_index
Advanced Filtering
use ;
let mut enumerator = new;
enumerator.enumerate_all_windows?;
// Filter by multiple criteria
let criteria = FilterCriteria ;
let filtered = enumerator.filter_windows;
println!;
Sorting (requires sorting feature)
use ;
let mut enumerator = new;
enumerator.enumerate_all_windows?;
// Sort by PID ascending, then title descending
let sort_criteria = SortCriteria ;
let sorted = enumerator.filter_and_sort_windows;
// Sort by position (X then Y coordinates)
let position_sort = parse_position_sort?;
let pos_sort_criteria = SortCriteria ;
let position_sorted = enumerator.filter_and_sort_windows;
Selection (requires selection feature)
use ;
let mut enumerator = new;
enumerator.enumerate_all_windows?;
// Select specific indices
let selection = parse_selection?;
let selected = enumerator.filter_windows_with_selection;
// Select range
let range_selection = parse_selection?;
let range_selected = enumerator.filter_windows_with_selection;
// Mixed selection
let mixed_selection = parse_selection?;
let mixed_selected = enumerator.filter_windows_with_selection;
Combined Filtering, Sorting and Selection
use ;
let mut enumerator = new;
enumerator.enumerate_all_windows?;
let criteria = FilterCriteria ;
let sort_criteria = SortCriteria ;
let selection = parse_selection?;
let results = enumerator.filter_sort_windows_with_selection;
println!;
API Overview
Main Types
WindowEnumerator- Main entry point for window operationsWindowInfo- Detailed information about a windowFilterCriteria- Criteria for filtering windowsSortCriteria- Criteria for sorting windows (withsortingfeature)Selection- Window selection specification (withselectionfeature)
Key Methods
enumerate_all_windows()- Discovers all visible windowsfilter_windows()- Filters windows based on criteriafilter_and_sort_windows()- Filters and sorts windowsfilter_windows_with_selection()- Filters and selects windowsprint_windows_with_indices()- Displays windows in a formatted table
Utility Functions
parse_selection()- Parses selection strings ("all", "1,2,3", "1-3")parse_position_sort()- Parses position sort strings ("x1", "y-1", "x1|y1")
Cargo Features
sorting- Enables window sorting capabilities (enabled by default)selection- Enables window selection by indices (enabled by default)
Platform Support
⚠️ Windows Only
This crate is specifically designed for Windows and uses Windows-specific APIs. It will not compile on other platforms.
Error Handling
All operations return window_enumerator::Result<T> which can contain various WindowError variants:
use ;
let mut enumerator = new;
match enumerator.enumerate_all_windows
Performance Notes
- Window enumeration is performed on-demand when
enumerate_all_windows()is called - Filtering and sorting operations work on the pre-enumerated list for efficiency
- The library uses zero-cost abstractions where possible
Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues on GitHub.
License
This project is licensed under the MIT License - see the LICENSE file for details.