diff --git a/src-tauri/src/core/sysopt.rs b/src-tauri/src/core/sysopt.rs index 5eed1e5..ea7f401 100644 --- a/src-tauri/src/core/sysopt.rs +++ b/src-tauri/src/core/sysopt.rs @@ -182,13 +182,22 @@ impl Sysopt { return Ok(()); } - // macos每次启动都更新登录项,避免重复设置登录项 #[cfg(target_os = "macos")] - let _ = auto.disable(); + { + if enable && !auto.is_enabled().unwrap_or(false) { + // 避免重复设置登录项 + let _ = auto.disable(); + auto.enable()?; + } else if !enable { + let _ = auto.disable(); + } + } + #[cfg(not(target_os = "macos"))] if enable { auto.enable()?; } + *self.auto_launch.lock() = Some(auto); Ok(())