28 个版本
0.0.46 | 2024年1月25日 |
---|---|
0.0.45 | 2023年11月11日 |
0.0.40 | 2023年8月31日 |
0.0.30 | 2023年2月26日 |
0.0.3 | 2020年6月30日 |
#491 in GUI
每月 208 次下载
用于 tileme
87KB
2K SLoC
winvd - Rust 的 Windows 11 虚拟桌面绑定
实现将烦人的 COM API 抽象成简单函数。
https://crates.io/crates/winvd https://github.com/ciantic/VirtualDesktopAccessor/tree/rust/
示例
use winvd::{switch_desktop, get_desktop_count, DesktopEvent, listen_desktop_events};
fn main() {
// Desktop count
println!("Desktops: {:?}", get_desktop_count().unwrap());
// Go to second desktop, index = 1
switch_desktop(1).unwrap();
// To listen for changes, use crossbeam, mpsc or winit proxy as a sender
let (tx, rx) = std::sync::mpsc::channel::<DesktopEvent>();
let _notifications_thread = listen_desktop_events(tx);
// Keep the _notifications_thread alive for as long as you wish to listen changes
std::thread::spawn(|| {
for item in rx {
println!("{:?}", item);
}
});
// Wait for keypress
println!("⛔ Press enter to stop");
let mut input = String::new();
std::io::stdin().read_line(&mut input).unwrap();
}
WIP 查看更多示例,请参阅 testbin 源代码 🚀。
备注
cargo clean
cargo doc --all-features
cargo build --release --workspace
依赖关系
~137MB
~2.5M SLoC