#clipboard #winapi #windows #format-time

不依赖std clipboard-win

提供与Windows剪贴板交互的简单方式

67个版本 (稳定版)

5.4.0 2024年7月7日
5.3.0 2024年3月14日
5.0.0 2023年11月22日
4.5.0 2023年1月8日
0.9.3 2015年7月16日

#3 in Windows API

Download history 95944/week @ 2024-05-02 94107/week @ 2024-05-09 107216/week @ 2024-05-16 99499/week @ 2024-05-23 112325/week @ 2024-05-30 101036/week @ 2024-06-06 116373/week @ 2024-06-13 116247/week @ 2024-06-20 119268/week @ 2024-06-27 102777/week @ 2024-07-04 119641/week @ 2024-07-11 113898/week @ 2024-07-18 118470/week @ 2024-07-25 104547/week @ 2024-08-01 109870/week @ 2024-08-08 106044/week @ 2024-08-15

每月462,202次下载
1,526 个crate中使用 (直接使用43个)

BSL-1.0 许可证

77KB
1.5K SLoC

clipboard-win

Build Crates.io Docs.rs

此crate提供简单的方式来操作Windows剪贴板。

注意保留剪贴板

在Windows中,Clipboard 是全局打开的,并且一次只能有一个应用程序设置数据到格式。

因此,一旦操作完成,建议用户关闭 Clipboard

Clipboard

对Windows剪贴板的所有读写访问都需要用户打开它。

使用方法

手动锁定剪贴板

use clipboard_win::{Clipboard, formats, Getter, Setter};

const SAMPLE: &str = "MY loli sample ^^";

let _clip = Clipboard::new_attempts(10).expect("Open clipboard");
formats::Unicode.write_clipboard(&SAMPLE).expect("Write sample");

let mut output = String::new();

assert_eq!(formats::Unicode.read_clipboard(&mut output).expect("Read sample"), SAMPLE.len());
assert_eq!(output, SAMPLE);

//Efficiently re-use buffer ;)
output.clear();
assert_eq!(formats::Unicode.read_clipboard(&mut output).expect("Read sample"), SAMPLE.len());
assert_eq!(output, SAMPLE);

//Or take the same string twice?
assert_eq!(formats::Unicode.read_clipboard(&mut output).expect("Read sample"), SAMPLE.len());
assert_eq!(format!("{0}{0}", SAMPLE), output);

简化API

use clipboard_win::{formats, get_clipboard, set_clipboard};

let text = "my sample ><";

set_clipboard(formats::Unicode, text).expect("To set clipboard");
//Type is necessary as string can be stored in various storages
let result: String = get_clipboard(formats::Unicode).expect("To set clipboard");
assert_eq!(result, text)

依赖关系