1 个不稳定版本
0.1.0 | 2024年7月2日 |
---|
#64 在 Windows API 中
每月 下载量 159
42KB
824 行
我为什么创建这个库
- 我正在尽可能多地学习Rust,所以我在这里。
- 我没有找到任何做类似事情的库。
- 它有一些缺失的情况,还没有完全实现。
- 它满足了我的需求,我认为它将帮助其他人进行基本使用。
- 是的,文档并不出色。对此表示歉意。
示例
- 函数名是自我解释的,但这里有一些方便的示例(对于那些像我一样的人)。
let service_manager = ServiceManager::new()?;
let service_name = "test";
let service_path = r"C:\Windows\system32\test.sys";
let service_handle = service_manager.create_or_get(ServiceConfig {
service_name: service_name.to_string(),
display_name: service_name.to_string(),
binary_path: "invalid path test".to_string(),
start_type: ServiceStartType::DemandStart,
service_type: ServiceType::KernelDriver,
..Default::default()
})?;
assert_eq!(
service_handle.get_start_type()?,
ServiceStartType::DemandStart
);
service_handle.update_config(ServiceConfig {
display_name: service_name.to_string(),
binary_path: service_path.to_string(),
service_type: ServiceType::KernelDriver,
..Default::default()
})?;
service_handle.start_blocking()?;
assert_eq!(service_handle.state()?, ServiceState::Running);
service_handle.stop_blocking()?;
assert_eq!(service_handle.state()?, ServiceState::Stopped);
std::thread::sleep(std::time::Duration::from_secs(2));
service_handle.delete()?;
依赖项
~13–21MB
~272K SLoC