use windows_service::{
service::ServiceAccess,
service_manager::{ServiceManager, ServiceManagerAccess},
};
pub const SERVICE_NAME: &str = "LibreHardwareMonitorService";
pub fn is_service_installed() -> Result<bool, windows_service::Error> {
let manager = ServiceManager::local_computer(None::<&str>, ServiceManagerAccess::CONNECT)?;
match manager.open_service(SERVICE_NAME, ServiceAccess::QUERY_STATUS) {
Ok(_service) => Ok(true),
Err(windows_service::Error::Winapi(error)) if error.raw_os_error() == Some(1060) => {
Ok(false)
}
Err(e) => Err(e),
}
}