#text #platform #obtain #across #tiny #macos #linux

get-selected-text

一个轻量级的Rust库,可让您轻松地在所有平台(macOS、Windows、Linux)上获取所选文本。

7个版本

0.1.6 2024年5月29日
0.1.5 2024年5月8日

#13 in 无障碍访问

Download history • Rust 包仓库 562/week @ 2024-05-03 • Rust 包仓库 83/week @ 2024-05-10 • Rust 包仓库 40/week @ 2024-05-17 • Rust 包仓库 158/week @ 2024-05-24 • Rust 包仓库 128/week @ 2024-05-31 • Rust 包仓库 25/week @ 2024-06-07 • Rust 包仓库 14/week @ 2024-06-14 • Rust 包仓库 13/week @ 2024-06-21 • Rust 包仓库 7/week @ 2024-06-28 • Rust 包仓库 15/week @ 2024-07-05 • Rust 包仓库 7/week @ 2024-07-12 • Rust 包仓库 50/week @ 2024-07-19 • Rust 包仓库 18/week @ 2024-07-26 • Rust 包仓库 27/week @ 2024-08-02 • Rust 包仓库 13/week @ 2024-08-09 • Rust 包仓库

每月110次下载

MIT/Apache

14KB
256

get-selected-text

Lint crates.io

一个轻量级的Rust库,可让您轻松地在所有平台(macOS、Windows、Linux)上获取所选文本。

对应的Node.js包:node-get-selected-text

用法

添加

cargo add get-selected-text

使用

use get_selected_text::get_selected_text;

fn main() {
    match get_selected_text() {
        Ok(selected_text) => {
            println!("selected text: {}", selected_text);
        },
        Err(()) => {
            println!("error occurred while getting the selected text");
        }
    }
}

它是如何工作的?

macOS

优先使用A11y API获取所选文本。如果应用程序不遵守A11y API,则模拟按下cmd+c以从剪贴板借取来获取所选文本。

为了避免在模拟按下cmd+c时发出烦人的警报声音,它将自动关闭警报声音(只有警报声音被关闭,不会影响听音乐和看视频的音量)。按键释放后将恢复警报声音的音量。

因此,在macOS上,您需要提前授予无障碍访问权限。示例代码如下

fn query_accessibility_permissions() -> bool {
    let trusted = macos_accessibility_client::accessibility::application_is_trusted_with_prompt();
    if trusted {
        print!("Application is totally trusted!");
    } else {
        print!("Application isn't trusted :(");
    }
    trusted
}

Windows + Linux

模拟按下ctrl+c以使用剪贴板获取所选文本。

依赖项

~2–34MB
~524K SLoC