#窗口 #活动 #位置 #标题 #当前

active-win-pos-rs

获取 Windows、macOS 和 Linux 上活动窗口的位置、大小、标题和其他一些属性

13 个版本 (7 个破坏性更新)

0.8.3 2023年11月29日
0.8.1 2023年5月18日
0.7.1 2022年9月20日
0.5.0 2022年7月9日
0.4.1 2022年2月22日

#46 in macOS 和 iOS API

Download history 214/week @ 2024-04-26 362/week @ 2024-05-03 255/week @ 2024-05-10 210/week @ 2024-05-17 199/week @ 2024-05-24 228/week @ 2024-05-31 230/week @ 2024-06-07 256/week @ 2024-06-14 171/week @ 2024-06-21 197/week @ 2024-06-28 185/week @ 2024-07-05 252/week @ 2024-07-12 297/week @ 2024-07-19 277/week @ 2024-07-26 218/week @ 2024-08-02 230/week @ 2024-08-09

每月 1,041 次下载
用于 2 crates

MIT/Apache

31KB
677 行代码

active-win-pos-rs

Build status

一个小的 Rust 库,允许您获取 Windows、macOS 和 Linux 上活动窗口的位置、大小、标题和其他一些属性

使用方法

添加到 Cargo.toml

[dependencies]
active-win-pos-rs = "0.8"

使用

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");
        }
    }
}

将返回一个 ActiveWindow 结构实例,包含唯一的窗口 ID、进程 ID、窗口位置和窗口标题。

或者使用 active_win_pos_rs::get_position 仅获取 WindowPosition

macOS 上的窗口标题

在 macOS 上,除非您为您的应用 启用屏幕录制权限,否则 title 属性将始终返回空字符串。

构建

% git clone https://github.com/dimusic/active-win-pos-rs.git
% cd active-win-pos-rs
% cargo build

示例

% cargo run --example active-window

输出

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,
    },
}

依赖项

~0–38MB
~531K SLoC