diff --git a/pom.xml b/pom.xml
index 731a8c1..a247c54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
2024
- AList windows gui
+ AList GUI
21
@@ -35,6 +35,7 @@
5.8.32
3.16.0
1.4.0
+ 5.14.0
1.18.32
2.15.4
12.3.1
@@ -93,6 +94,17 @@
${common-exec.version}
+
+ net.java.dev.jna
+ jna
+ ${jna.version}
+
+
+ net.java.dev.jna
+ jna-platform
+ ${jna.version}
+
+
cn.hutool
diff --git a/src/main/java/cn/octopusyan/alistgui/config/Constants.java b/src/main/java/cn/octopusyan/alistgui/config/Constants.java
index 36cc886..59db2bd 100644
--- a/src/main/java/cn/octopusyan/alistgui/config/Constants.java
+++ b/src/main/java/cn/octopusyan/alistgui/config/Constants.java
@@ -23,4 +23,7 @@ public class Constants {
public static final String CONFIG_DIR_PATH = STR."\{DATA_DIR_PATH}\{File.separator}config";
public static final String GUI_CONFIG_PATH = STR."\{CONFIG_DIR_PATH}\{File.separator}gui.yaml";
public static final String BAK_FILE_PATH = STR."\{Constants.TMP_DIR_PATH}\{File.separator}bak";
+
+ public static final String REG_AUTO_RUN = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
+ public static final String APP_EXE = STR."\{DATA_DIR_PATH}\{File.separator}\{APP_NAME}.exe";
}
diff --git a/src/main/java/cn/octopusyan/alistgui/controller/SetupController.java b/src/main/java/cn/octopusyan/alistgui/controller/SetupController.java
index 67847f3..cff3d22 100644
--- a/src/main/java/cn/octopusyan/alistgui/controller/SetupController.java
+++ b/src/main/java/cn/octopusyan/alistgui/controller/SetupController.java
@@ -2,10 +2,13 @@ package cn.octopusyan.alistgui.controller;
import atlantafx.base.theme.Theme;
import cn.octopusyan.alistgui.base.BaseController;
+import cn.octopusyan.alistgui.config.Constants;
import cn.octopusyan.alistgui.config.Context;
import cn.octopusyan.alistgui.enums.ProxySetup;
import cn.octopusyan.alistgui.manager.ConfigManager;
import cn.octopusyan.alistgui.viewModel.SetupViewModel;
+import com.sun.jna.platform.win32.Advapi32Util;
+import com.sun.jna.platform.win32.WinReg;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
@@ -98,6 +101,18 @@ public class SetupController extends BaseController implements I
viewModel.languageProperty().bind(languageComboBox.getSelectionModel().selectedItemProperty());
viewModel.themeProperty().bind(themeComboBox.getSelectionModel().selectedItemProperty());
viewModel.proxySetupProperty().bind(proxySetupComboBox.getSelectionModel().selectedItemProperty());
+
+ autoStartCheckBox.selectedProperty().addListener((_, _, checked) -> {
+ try {
+ if (checked) {
+ Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, Constants.REG_AUTO_RUN, Constants.APP_TITLE, Constants.APP_EXE);
+ } else {
+ Advapi32Util.registryDeleteValue(WinReg.HKEY_CURRENT_USER, Constants.REG_AUTO_RUN, Constants.APP_TITLE);
+ }
+ } catch (Throwable e) {
+ logger.error("", e);
+ }
+ });
}
@FXML
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index f43f846..cc28cfb 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -1,5 +1,6 @@
module cn.octopusyan.alistgui {
requires java.net.http;
+ requires com.sun.jna.platform;
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;