using LumaTunnel.Client.Interface; using Microsoft.Win32; using XFEExtension.NetCore.WinUIHelper.Implements.Services; namespace LumaTunnel.Client.Implements; public sealed class StartupService : GlobalServiceBase, IStartupService { private const string RunKey = @"Software\Microsoft\Windows\CurrentVersion\Run"; public bool IsEnabled { get { using var key = Registry.CurrentUser.OpenSubKey(RunKey, false); return key?.GetValue("LumaTunnel") is string; } } public void SetEnabled(bool enabled) { using var key = Registry.CurrentUser.OpenSubKey(RunKey, true) ?? Registry.CurrentUser.CreateSubKey(RunKey, true); if (enabled) key.SetValue("LumaTunnel", $"\"{Environment.ProcessPath}\" --background", RegistryValueKind.String); else key.DeleteValue("LumaTunnel", false); } }