public static string ReadRegistryWithSubKey(string title, string subTitle, string keyName, EncryptionOptionsWithSubKey encryptionOptions, string DecryptionKey = "123")//Read a value to Reg
        {
            string temp;

            if (EncryptionOptionsWithSubKey.NoEncryption == encryptionOptions)
            {
                RegistryKey Test = Registry.CurrentUser.OpenSubKey(title + "\\" + subTitle);
                try
                {
                    if (Test != null)
                    {
                        Test.OpenSubKey(keyName);
                        temp = Test.GetValue(keyName).ToString();
                    }
                    else
                    {
                        temp = null;
                    }
                    return(temp);
                }
                catch (NullReferenceException)
                {
                    return(null);
                }
            }
            else if (EncryptionOptionsWithSubKey.OnlyValue == encryptionOptions)
            {
                RegistryKey Test = Registry.CurrentUser.OpenSubKey(title + "\\" + subTitle);
                try
                {
                    if (Test != null)
                    {
                        Test.OpenSubKey(keyName);
                        temp = Test.GetValue(keyName).ToString();
                    }
                    else
                    {
                        temp = null;
                    }
                    return(EncryptDecrypt.Decrypt(temp, DecryptionKey));
                }
                catch (NullReferenceException)
                {
                    return(null);
                }
            }
            else if (EncryptionOptionsWithSubKey.FullEncryption == encryptionOptions)
            {
                RegistryKey Test = Registry.CurrentUser.OpenSubKey(EncryptDecrypt.Encrypt(title, DecryptionKey) + "\\" + EncryptDecrypt.Encrypt(subTitle, DecryptionKey));
                try
                {
                    if (Test != null)
                    {
                        Test.OpenSubKey(EncryptDecrypt.Encrypt(keyName, DecryptionKey));
                        temp = Test.GetValue(EncryptDecrypt.Encrypt(keyName, DecryptionKey)).ToString();
                    }
                    else
                    {
                        temp = null;
                    }
                    return(EncryptDecrypt.Decrypt(temp, DecryptionKey));
                }
                catch (NullReferenceException)
                {
                    return(null);
                }
            }
            else if (EncryptionOptionsWithSubKey.SubKeyAndValue == encryptionOptions)
            {
                RegistryKey Test = Registry.CurrentUser.OpenSubKey(title + "\\" + EncryptDecrypt.Encrypt(subTitle, DecryptionKey));
                try
                {
                    if (Test != null)
                    {
                        Test.OpenSubKey(EncryptDecrypt.Encrypt(keyName, DecryptionKey));
                        temp = Test.GetValue(EncryptDecrypt.Encrypt(keyName, DecryptionKey)).ToString();
                    }
                    else
                    {
                        temp = null;
                    }
                    return(EncryptDecrypt.Decrypt(temp, DecryptionKey));
                }
                catch (NullReferenceException)
                {
                    return(null);
                }
            }
            return(null);
        }
 public static void SaveRegistryWithSubKey(string title, string subTitle, string keyName, string keyValue, EncryptionOptionsWithSubKey encryptionOptions, string encryptionKey = "123") //Save a value to Reg
 {
     if (EncryptionOptionsWithSubKey.NoEncryption == encryptionOptions)
     {
         RegistryKey Test = Registry.CurrentUser.CreateSubKey(title + "\\" + subTitle);
         Test.SetValue(keyName, keyValue);
     }
     else if (EncryptionOptionsWithSubKey.FullEncryption == encryptionOptions)
     {
         RegistryKey Test = Registry.CurrentUser.CreateSubKey(EncryptDecrypt.Encrypt(title, encryptionKey) + "\\" + EncryptDecrypt.Encrypt(subTitle, encryptionKey));
         Test.SetValue(EncryptDecrypt.Encrypt(keyName, encryptionKey), EncryptDecrypt.Encrypt(keyValue, encryptionKey));
     }
     else if (EncryptionOptionsWithSubKey.SubKeyAndValue == encryptionOptions)
     {
         RegistryKey Test = Registry.CurrentUser.CreateSubKey(title + "\\" + EncryptDecrypt.Encrypt(subTitle, encryptionKey));
         Test.SetValue(EncryptDecrypt.Encrypt(keyName, encryptionKey), EncryptDecrypt.Encrypt(keyValue, encryptionKey));
     }
     else if (EncryptionOptionsWithSubKey.OnlyValue == encryptionOptions)
     {
         RegistryKey Test = Registry.CurrentUser.CreateSubKey(title + "\\" + subTitle);
         Test.SetValue(keyName, EncryptDecrypt.Encrypt(keyValue, encryptionKey));
     }
 }