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 @@