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
每月462,202次下载
在 1,526 个crate中使用 (直接使用43个)
77KB
1.5K SLoC
clipboard-win
此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)