2个版本
0.1.3 | 2024年4月3日 |
---|---|
0.1.2 | 2024年4月2日 |
0.1.1 |
|
#116 在 Windows API
104 每月下载量
25KB
456 行
windows_service_controller
使控制Windows服务变得更简单。
当前功能
-
基本操作
-
打开现有服务
-
创建新服务
-
删除服务
-
查询服务状态
-
编辑服务配置
-
用法
# Cargo.toml
[dependencies]
windows_service_controller = "0.1"
打开现有服务
use windows_service_controller::WindowsService;
use windows_service_controller::dword::service_access;
fn open_service() {
let service = WindowsService::open("WSearch",
Some(service_access::GENERIC_READ), None);
match service {
Ok(s) => {
println!("{:?}", s.config)
}
Err(e) => {
println!("{}", e)
}
}
}
创建新服务
use windows_service_controller::WindowsService;
use windows_service_controller::dword::{sc_manager_access,
service_access,service_type,service_start_type,service_error_control};
fn create_service() {
let service = WindowsService::new(
"Lers",
None,
Some(sc_manager_access::GENERIC_WRITE),
Some(service_access::GENERIC_WRITE),
service_type::SERVICE_WIN32_OWN_PROCESS,
service_start_type::SERVICE_DEMAND_START,
service_error_control::SERVICE_ERROR_NORMAL,
"Path to Binary",
None,
);
match service {
Ok(s) => {
println!("{:?}", s.config)
}
Err(e) => {
println!("{}", e)
}
}
}
删除服务
use windows_service_controller::WindowsService;
fn delete_service() {
let service = WindowsService::open("Lers", None, None);
match service {
Ok(s) => match s.delete_service() {
Ok(_) => {
println!("succeed")
}
Err(e) => {
println!("{}", e);
}
},
Err(e) => {
println!("{}", e);
}
}
}
编辑服务配置
use windows_service_controller::{WindowsService,PWSTR};
fn update_service_config() {
let service = WindowsService::open("Lers", None, None);
match service {
Ok(mut s) => {
s.config.lpDisplayName = PWSTR!("lers test");
match s.update_service_config(None) {
Ok(_) => {
println!("succeed")
}
Err(e) => {
println!("{}", e);
}
}
}
Err(e) => {
println!("{}", e);
}
}
}
错误:无法编辑“lpServiceStartName”。
依赖项
~128MB
~2M SLoC