From 9f5eaba2c813b6707e3ab46d7ee38f7c0c353fb1 Mon Sep 17 00:00:00 2001 From: octopus_yan Date: Sun, 15 Sep 2024 04:35:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=BC=80=E6=9C=BA?= =?UTF-8?q?=E8=87=AA=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 +++++++++++++- .../cn/octopusyan/alistgui/config/Constants.java | 3 +++ .../alistgui/controller/SetupController.java | 15 +++++++++++++++ src/main/java/module-info.java | 1 + 4 files changed, 32 insertions(+), 1 deletion(-) 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;