private void RegisterSettings() { Registrar.RegOption steamPath = new Registrar.RegOption("SteamPath", validators.DirectoryValidator, "", typeof(string)); Registrar.RegOption outputPath = new Registrar.RegOption("OutputPath", validators.DirectoryValidator, "", typeof(string)); settings.RegisterSetting("SteamPath", steamPath); settings.RegisterSetting("OutputPath", outputPath); }
private void RegisterSettings() { Registrar.RegOption mouseSensX = new Registrar.RegOption("SensitivityX", configValidators.SensitivityValidatorInstance, 1.0f, typeof(float)); Registrar.RegOption mouseSensY = new Registrar.RegOption("SensitivityY", configValidators.SensitivityValidatorInstance, 1.0f, typeof(float)); Registrar.RegOption hotKeyEnabled = new Registrar.RegOption("HotkeyEnabled", configValidators.BoolValidatorInstance, 0, typeof(int)); Registrar.RegOption hotKey = new Registrar.RegOption("Hotkey", configValidators.HotkeyValidatorInstance, "F1", typeof(string)); Registrar.RegOption incrementKeysEnabled = new Registrar.RegOption("IncrementHotkeysEnabled", configValidators.BoolValidatorInstance, 0, typeof(int)); Registrar.RegOption incrementAmount = new Registrar.RegOption("IncrementAmount", configValidators.IncrementAmountValidatorInstance, 0.1f, typeof(float)); Registrar.RegOption successSoundsEnabled = new Registrar.RegOption("SuccessSoundsEnabled", configValidators.BoolValidatorInstance, 1, typeof(int)); Registrar.RegOption currentGame = new Registrar.RegOption("CurrentGame", configValidators.CurrentGameValidatorInstance, 1, typeof(int)); settings.RegisterSetting("SensitivityX", mouseSensX); settings.RegisterSetting("SensitivityY", mouseSensY); settings.RegisterSetting("HotkeyEnabled", hotKeyEnabled); settings.RegisterSetting("Hotkey", hotKey); settings.RegisterSetting("IncrementHotkeysEnabled", incrementKeysEnabled); settings.RegisterSetting("IncrementAmount", incrementAmount); settings.RegisterSetting("SuccessSoundsEnabled", successSoundsEnabled); settings.RegisterSetting("CurrentGame", currentGame); }
static void Main(string[] args) { // Create an instance of the validators object, which contains implementations of the validator interface // to be used for validating options when they are set. Validators validators = new Validators(); // This will create a key in the BaseKey 'HKEY_CURRENT_USER' called 'TestOptionsRootKey', which is where all // the registry entries for this particular instance will reside. Registrar.RegSettings settings = new Registrar.RegSettings(Registrar.RegBaseKeys.HKEY_CURRENT_USER, "Software/Test"); /* * Option instances. * The first parameter is the keyname to be used in the registry entry for the option, the second is * the validator instace to be used for the option to run against, the third is the default value, and * the forth is the type of variable the option is to use. Optionally, the fifth is subkeys, * which will put the key into HKEY_CURRENT_USER\TestOptionsRootKey\Subkey etc. */ Registrar.RegOption optionOne = new Registrar.RegOption("option_one", validators.OptionOneValidator, 1, typeof(int)); Registrar.RegOption optionTwo = new Registrar.RegOption("option_two", validators.OptionTwoValidator, "hello!", typeof(string)); Registrar.RegOption optionThree = new Registrar.RegOption("option_three", validators.OptionThreeValidator, true, typeof(bool), "/SubKey"); Registrar.RegOption optionFour = new Registrar.RegOption("option_four", validators.OptionFourValidator, @"C:\", typeof(string), "/SubKey/AnotherSubkey"); Registrar.RegOption optionFive = new Registrar.RegOption("option_five", null, "Just a string.", typeof(string)); // Register the options. This puts them in the settings objects internal dictionary of option objects. // The first parameter is the name to use for the option when retrieving it with GetSetting. The second // is the option instance. // The name of the option can be different from the key used in the registry. settings.RegisterSetting("OptionOne", optionOne); settings.RegisterSetting("OptionTwo", optionTwo); settings.RegisterSetting("OptionThree", optionThree); settings.RegisterSetting("OptionFour", optionFour); settings.RegisterSetting("OptionFive", optionFive); /* * If the root key does not exist in the registry, call save settings to create one with current values. * Otherwise, load settings. */ if (!settings.RootKeyExists()) { Console.WriteLine("Didn't find the root key in the registry. \r\nPopulating one with current values."); try { settings.SaveSettings(); } catch (Registrar.RegSaveException ex) { Console.WriteLine($"Error(s) occurred while saving settings: \r\n{ex.Message}"); } } else { Console.WriteLine("Registry entry for root key was found. \r\nLoading settings."); try { settings.LoadSettings(); } catch (Registrar.RegLoadException ex) { Console.WriteLine($"Error(s) occurred while loading settings: \r\n{ex.Message}"); } } // GetOption and SetOption examples Console.WriteLine(settings.GetOption <int>("OptionOne")); Console.WriteLine(settings.GetOption <string>("OptionTwo")); Console.WriteLine(settings.GetOption <bool>("OptionThree")); Console.WriteLine(settings.GetOption <string>("OptionFour")); Console.WriteLine(settings.GetOption <string>("OptionFive")); Console.WriteLine("Setting OptionOne to 2 (this will fail since the validator makes sure its <= 1)"); try { settings.SetOption("OptionOne", 2); Console.WriteLine("Successfully set OptionOne to 2"); // This will never be reached but its here just for show. } catch (Registrar.RegOptionAssignmentException ex) { Console.WriteLine($"Error occurred while setting OptionOne to 2: {ex.Message}"); } Console.WriteLine(settings.GetOption <int>("OptionOne")); // Prints 1, since the option failed to be set so it kept its previous value // Keep the window open Console.Read(); }