45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
|
|
// 隐藏控制台(双保险:build.rs 也有 /SUBSYSTEM:WINDOWS)
|
|||
|
|
#![windows_subsystem = "windows"]
|
|||
|
|
|
|||
|
|
mod app;
|
|||
|
|
mod config;
|
|||
|
|
mod inspect;
|
|||
|
|
mod matcher;
|
|||
|
|
mod privilege;
|
|||
|
|
mod report;
|
|||
|
|
mod scan;
|
|||
|
|
mod ui;
|
|||
|
|
mod utils;
|
|||
|
|
|
|||
|
|
use crate::app::App;
|
|||
|
|
use crate::privilege::ensure_admin;
|
|||
|
|
use crate::utils::logger::init_logger;
|
|||
|
|
|
|||
|
|
fn main() -> anyhow::Result<()> {
|
|||
|
|
// 单次 UAC 提升:未以管理员运行时通过 runas 重启当前进程
|
|||
|
|
if let Err(e) = ensure_admin() {
|
|||
|
|
// 提示但不强制退出(用户可能在调试)
|
|||
|
|
tracing::warn!("UAC 提升失败:{}", e);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
init_logger();
|
|||
|
|
|
|||
|
|
let viewport = eframe::egui::ViewportBuilder::default()
|
|||
|
|
.with_title("涉密文件自检工具")
|
|||
|
|
.with_inner_size([1280.0, 800.0])
|
|||
|
|
.with_min_inner_size([960.0, 640.0]);
|
|||
|
|
|
|||
|
|
let options = eframe::NativeOptions {
|
|||
|
|
viewport,
|
|||
|
|
vsync: true,
|
|||
|
|
..Default::default()
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
eframe::run_native(
|
|||
|
|
"涉密文件自检工具",
|
|||
|
|
options,
|
|||
|
|
Box::new(|cc| Box::new(App::new(cc))),
|
|||
|
|
)
|
|||
|
|
.map_err(|e| anyhow::anyhow!("eframe 启动失败:{}", e))
|
|||
|
|
}
|