using Microsoft.Win32; namespace PersonalToolBox.Helpers; /// /// 开机自启动管理,通过写入 Windows 注册表 Run 键实现 /// public static class AutoStartHelper { private const string RunKeyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; private const string AppName = "PersonalToolBox"; /// /// 检查当前是否已设置开机自启动 /// public static bool IsAutoStartEnabled() { try { using var key = Registry.CurrentUser.OpenSubKey(RunKeyPath); return key?.GetValue(AppName) != null; } catch { return false; } } /// /// 设置或取消开机自启动 /// public static void SetAutoStart(bool enable) { try { using var key = Registry.CurrentUser.OpenSubKey(RunKeyPath, writable: true); if (key == null) return; if (enable) { var exePath = Environment.ProcessPath; if (exePath != null) key.SetValue(AppName, $"\"{exePath}\" -autostart"); } else { key.DeleteValue(AppName, throwOnMissingValue: false); } } catch { // 注册表操作失败时静默忽略(可能是权限不足) } } }