private void SetRegistryValue(RegistryEntryType registryEntryType, string valueName, string value)
        {
            try
            {
                RegistryKey key = null;

                if (registryEntryType == RegistryEntryType.Machine)
                {
                    key = Registry.LocalMachine.OpenSubKey(_localMachineKey, true);
                }
                else if (registryEntryType == RegistryEntryType.User)
                {
                    key = Registry.CurrentUser.OpenSubKey(_userKey, true);
                }

                key.SetValue(valueName, value, RegistryValueKind.String);
            }
            catch (Exception exp)
            {
                Logger.Logger.Log(exp, "SetRegistryValue");
                throw;
            }
        }
        private string GetRegistryValue(RegistryEntryType registryEntryType, string valueName, string defaultValue = "0")
        {
            try
            {
                RegistryKey key = null;

                if (registryEntryType == RegistryEntryType.Machine)
                {
                    key = Registry.LocalMachine.OpenSubKey(_localMachineKey, true);
                }
                else if (registryEntryType == RegistryEntryType.User)
                {
                    key = Registry.CurrentUser.OpenSubKey(_userKey, true);
                }

                Object value = key.GetValue(valueName);

                if (value == null)
                {
                    key.SetValue(valueName, defaultValue, RegistryValueKind.String);
                    return defaultValue;
                }

                return value.ToString();
            }
            catch (Exception exp)
            {
                Logger.Logger.Log(exp, "SetRegistryValue");
                throw;
            }
        }