diff --git a/switch-desktop/src/config/mod.rs b/switch-desktop/src/config/mod.rs index 4bed80f..e9b7237 100644 --- a/switch-desktop/src/config/mod.rs +++ b/switch-desktop/src/config/mod.rs @@ -17,7 +17,12 @@ lazy_static! { #[cfg(windows)] pub fn get_win_server_home() -> PathBuf { - "./".into() + SWITCH_HOME_PATH.lock().as_ref().unwrap().clone() +} + +#[cfg(windows)] +pub fn set_win_server_home(home:PathBuf) { + let _ = SWITCH_HOME_PATH.lock().insert(home); } pub struct StartConfig { diff --git a/switch-desktop/src/main.rs b/switch-desktop/src/main.rs index 97784da..c31b0c7 100644 --- a/switch-desktop/src/main.rs +++ b/switch-desktop/src/main.rs @@ -141,6 +141,7 @@ async fn main() { let args: Vec<_> = std::env::args().collect(); if args.len() == 3 && args[1] == windows::SERVICE_FLAG { //以服务的方式启动 + config::set_win_server_home(std::path::PathBuf::from(&args[2])); windows::service::start(); return; } else { diff --git a/switch-desktop/src/windows/service.rs b/switch-desktop/src/windows/service.rs index 6a4517d..f4667b3 100644 --- a/switch-desktop/src/windows/service.rs +++ b/switch-desktop/src/windows/service.rs @@ -44,7 +44,7 @@ pub fn switch_service_main(arguments: Vec) { } async fn service_main(args: StartArgs) -> windows_service::Result<()> { - log::error!("service_main:{:?}",args); + log::info!("service_main:{:?}",args); let parker = crossbeam::sync::Parker::new(); let un_parker = parker.unparker().clone(); let event_handler = move |control_event| -> ServiceControlHandlerResult {