use fs_extra::dir;
use std::time::Instant;
use xcap::Window;
fn normalized(filename: &str) -> String {
filename.replace(['|', '\\', ':', '/', '"'], "")
}
fn main() {
let start = Instant::now();
let windows = Window::all().unwrap();
dir::create_all("target/windows", true).unwrap();
let mut i = 0;
for window in windows {
if window.is_minimized().unwrap() {
continue;
}
println!(
"Window: {:?} {:?} {:?}",
window.title().unwrap(),
(
window.x().unwrap(),
window.y().unwrap(),
window.width().unwrap(),
window.height().unwrap()
),
(
window.is_minimized().unwrap(),
window.is_maximized().unwrap()
)
);
let image = window.capture_image().unwrap();
image
.save(format!(
"target/windows/window-{}-{}.png",
i,
normalized(&window.title().unwrap())
))
.unwrap();
i += 1;
}
println!("运行耗时: {:?}", start.elapsed());
}