GyDi преди 3 години
родител
ревизия
2d95f2b0d6
променени са 2 файла, в които са добавени 14 реда и са изтрити 21 реда
  1. 13 19
      src-tauri/src/core/verge.rs
  2. 1 2
      src-tauri/src/utils/resolve.rs

+ 13 - 19
src-tauri/src/core/verge.rs

@@ -133,37 +133,31 @@ impl Verge {
   }
 
   /// init the auto launch
-  pub fn init_launch(&mut self) {
+  pub fn init_launch(&mut self) -> Result<()> {
     let app_exe = current_exe().unwrap();
     let app_exe = dunce::canonicalize(app_exe).unwrap();
     let app_name = app_exe.file_stem().unwrap().to_str().unwrap();
     let app_path = app_exe.as_os_str().to_str().unwrap();
 
+    // fix issue #26
+    #[cfg(target_os = "windows")]
+    let app_path = format!("\"{app_path}\"");
+    #[cfg(target_os = "windows")]
+    let app_path = app_path.as_str();
+
     let auto = AutoLaunchBuilder::new()
       .set_app_name(app_name)
       .set_app_path(app_path)
       .build();
 
-    self.auto_launch = Some(auto);
-  }
-
-  /// sync the startup when run the app
-  pub fn sync_launch(&self) -> Result<()> {
-    let enable = self.config.enable_auto_launch.clone().unwrap_or(false);
-    if !enable {
-      return Ok(());
-    }
-
-    if self.auto_launch.is_none() {
-      bail!("should init the auto launch first");
+    if let Some(enable) = self.config.enable_auto_launch.as_ref() {
+      // fix issue #26
+      if *enable {
+        auto.enable()?;
+      }
     }
 
-    let auto_launch = self.auto_launch.clone().unwrap();
-
-    let is_enabled = auto_launch.is_enabled().unwrap_or(false);
-    if !is_enabled {
-      auto_launch.enable()?;
-    }
+    self.auto_launch = Some(auto);
 
     Ok(())
   }

+ 1 - 2
src-tauri/src/utils/resolve.rs

@@ -38,8 +38,7 @@ pub fn resolve_setup(app: &App) {
     clash.tun_mode(true).unwrap();
   }
 
-  verge.init_launch();
-  log_if_err!(verge.sync_launch());
+  log_if_err!(verge.init_launch());
 }
 
 /// reset system proxy