diff --git a/VRCX.cs b/VRCX.cs index 1f446cc5..acc91b19 100644 --- a/VRCX.cs +++ b/VRCX.cs @@ -134,5 +134,27 @@ namespace VRCX { return CpuMonitor.CpuUsage; } + + public void SetStartup(bool enabled) + { + try + { + using (var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) + { + if (enabled) + { + var path = Application.ExecutablePath; + key.SetValue("VRCX", $"\"{path}\" --startup"); + } + else + { + key.DeleteValue("VRCX", false); + } + } + } + catch + { + } + } } } \ No newline at end of file diff --git a/html/app.js b/html/app.js index 96b8a770..6cc87b0f 100644 --- a/html/app.js +++ b/html/app.js @@ -5304,12 +5304,16 @@ CefSharp.BindObjectAsync( VRCXStorage.SetBool('isDarkMode', this.isDarkMode); $appDarkStyle.disabled = this.isDarkMode === false; }; + $app.data.isStartAtWindowsStartup = VRCXStorage.GetBool('VRCX_StartAtWindowsStartup'); $app.data.isStartAsMinimizedState = VRCXStorage.GetBool('VRCX_StartAsMinimizedState'); $app.data.isCloseToTray = VRCXStorage.GetBool('VRCX_CloseToTray'); var saveVRCXWindowOption = function () { + VRCXStorage.SetBool('VRCX_StartAtWindowsStartup', this.isStartAtWindowsStartup); VRCXStorage.SetBool('VRCX_StartAsMinimizedState', this.isStartAsMinimizedState); VRCXStorage.SetBool('VRCX_CloseToTray', this.isCloseToTray); + VRCX.SetStartup(this.isStartAtWindowsStartup); }; + $app.watch.isStartAtWindowsStartup = saveVRCXWindowOption; $app.watch.isStartAsMinimizedState = saveVRCXWindowOption; $app.watch.isCloseToTray = saveVRCXWindowOption; diff --git a/html/index.html b/html/index.html index e74c195a..b8924d26 100644 --- a/html/index.html +++ b/html/index.html @@ -771,7 +771,7 @@
- Instance Details + Instance details
@@ -794,11 +794,15 @@
Window
- Start as Minimized State + Start at Windows startup + +
+
+ Start as minimized state
- Close to Tray + Close to tray