public static FenestraSettingsArgs LoadSettings() { var filePath = Path.Combine(GetFenestraSettingsPath(), SettingsFileName); if (!File.Exists(filePath)) { return(FenestraSettingsArgs.CreateDefault()); } try { using var sr = new StreamReader(new FileStream(filePath, FileMode.Open)); var settingsJson = sr.ReadToEnd(); return(JsonConvert.DeserializeObject <FenestraSettingsArgs>(settingsJson)); } catch (Exception) { return(FenestraSettingsArgs.CreateDefault()); } }
public static void SaveSettings(FenestraSettingsArgs settingsArgs) { var path = GetFenestraSettingsPath(); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var filePath = Path.Combine(GetFenestraSettingsPath(), SettingsFileName); using var sw = new StreamWriter(new FileStream(filePath, FileMode.Create)); var settingsJson = JsonConvert.SerializeObject(settingsArgs); sw.Write(settingsJson); sw.Flush(); }
public static void ApplySettings(FenestraSettingsArgs args, Window mainWindow) { FenestraHotkeyUtil.SetupHotkey(mainWindow, args.HotKeys); var registryKey = GetStartAtLoginRegistryKey(); if (args.StartAtLogin) { var applicationPath = Assembly.GetEntryAssembly()?.Location; if (applicationPath != null) { registryKey.SetValue(FenestraRegistryKeyName, applicationPath); } } else { registryKey.DeleteValue(FenestraRegistryKeyName, false); } }