clipkeeper

Crates.ioclipkeeper
lib.rsclipkeeper
version0.1.1
created_at2025-11-02 12:44:09.426351+00
updated_at2025-11-02 14:38:00.347379+00
descriptionA Rust library for saving and restoring Windows clipboard contents with full format support
homepagehttps://github.com/initialencounter/clipkeeper
repositoryhttps://github.com/initialencounter/clipkeeper
max_upload_size
id1913090
size25,245
Wang Zeng (initialencounter)

documentation

README

Clipboard Persistence

一个用于保存和恢复 Windows 剪贴板内容的 Rust 库。

平台支持

  • ✅ Windows (x86_64, i686)
  • ❌ macOS(待支持)
  • ❌ Linux(待支持)

功能特性

  • 📋 捕获剪贴板所有格式的完整快照
  • 💾 将剪贴板内容保存到 JSON 文件
  • 🔄 从文件恢复剪贴板内容
  • 🎯 支持标准格式和自定义格式
  • ✅ Windows 平台原生 API 支持

安装

将以下内容添加到 Cargo.toml

[dependencies]
clipkeeper = "0.1.0"

快速开始

use clipkeeper::{
    get_windows_clipboard_snapshot,
    restore_windows_clipboard_snapshot,
    WindowsClipboardSnapshot,
};

fn main() -> anyhow::Result<()> {
    // 1. 获取当前剪贴板快照
    let snapshot = get_windows_clipboard_snapshot()?;
    println!("捕获了 {} 个格式", snapshot.formats.len());

    // 2. 保存到文件(默认路径:~AppData/Roaming/clipkeeper/clipboard_snapshot.json)
    let file_path = snapshot.save_to_file(None)?;
    println!("已保存到: {:?}", file_path);

    // 3. 从文件加载快照
    let loaded_snapshot = WindowsClipboardSnapshot::load_from_file(None)?;

    // 4. 恢复剪贴板
    restore_windows_clipboard_snapshot(&loaded_snapshot)?;
    println!("剪贴板已恢复");

    Ok(())
}

自定义保存路径

use std::path::PathBuf;

// 保存到自定义路径
let custom_path = PathBuf::from("my_clipboard.json");
snapshot.save_to_file(Some(custom_path.clone()))?;

// 从自定义路径加载
let snapshot = WindowsClipboardSnapshot::load_from_file(Some(custom_path))?;

运行示例

cargo run --example basic

许可证

AGPL-3.0

作者

inintencunter

Commit count: 0

cargo fmt