A small Rust library that lets you get position, size, title and a few other properties of the active window on Windows, MacOS and Linux
[dependencies]
active-win-pos-rs = "0.9"use active_win_pos_rs::get_active_window;
fn main() {
match get_active_window() {
Ok(active_window) => {
println!("active window: {:#?}", active_window);
},
Err(()) => {
println!("error occurred while getting the active window");
}
}
}Would give you an instance of ActiveWindow struct with unique window id, process id, window position and window title.
Or use active_win_pos_rs::get_position to get the WindowPosition only.
On MacOS title property will always return an empty string
unless you Enable Screen Recording permission for your app.
% git clone https://github.com/dimusic/active-win-pos-rs.git
% cd active-win-pos-rs
% cargo build% cargo run --example active-windowOutput:
active window: ActiveWindow {
title: "cmd - cargo run --example active-window",
process_path: "C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.16.10262.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe",
app_name: "WindowsTerminal",
window_id: "HWND(9700584)",
process_id: 8460,
position: WindowPosition {
x: 6.0,
y: 296.0,
width: 1129.0,
height: 635.0,
},
}
This project is supported by a few maker-focused businesses I run and actively use in my workflow. If you work with laser cutting, CNC, or digital art, you might find them useful too.
- MyLaserTools tools and resources for laser cutting, CNC machining, and 3D printing.
- YXE Creations Craft Hub a laser craft supply store for acrylic, plywood, and maker materials.
- Lumicry digital luminous neon and acrylic art powered by LEDs and custom electronics.