/// <summary> /// Recupera um valor do registro baseado na chave /// </summary> /// <param name="keyPath">Caminho base</param> /// <param name="chave">chave usada para localizar o valor</param> /// <param name="valorPadrao">Valor que deve ser usado caso não obtenha resultado, caso nulo retorna Exception</param> /// <returns>Retorna o objeto referente a chave, caso não encontre volta uma string vazia</returns> public static string RecuperaValor(string keyPath, string chave, string valorPadrao) { try { if (string.IsNullOrEmpty(keyPath)) { throw new ArgumentNullException("keyPath", "O parâmetro chave não pode ser nulo"); } if (string.IsNullOrEmpty(chave)) { throw new ArgumentNullException("chave", "O parâmetro chave não pode ser nulo"); } var perm1 = new RegistryPermission(RegistryPermissionAccess.Read, Key); return perm1.CanReadKey(Key) ? Microsoft.Win32.Registry.GetValue(keyPath, chave, "").ToString() : valorPadrao; } catch (Exception) { if (valorPadrao == null) { throw; } return valorPadrao; } }