web-dev-qa-db-fra.com

Comment vérifier si une valeur de registre existe en utilisant C #?

Comment vérifier si une valeur de registre existe avec le code C #? Ceci est mon code, je veux vérifier si 'Start' existe.

public static bool checkMachineType()
{
    RegistryKey winLogonKey = Registry.LocalMachine.OpenSubKey(@"System\CurrentControlSet\services\pcmcia", true);
    string currentKey= winLogonKey.GetValue("Start").ToString();

    if (currentKey == "0")
        return (false);
    return (true);
}
64
sari k

Pour la clé de registre, vous pouvez vérifier si elle est nulle après l'avoir obtenue. Ce sera, si ça n'existe pas.

Pour la valeur de registre, vous pouvez obtenir le nom des valeurs pour la clé actuelle et vérifier si ce tableau contient le nom de valeur nécessaire.

48
26071986
public static bool RegistryValueExists(string Hive_HKLM_or_HKCU, string registryRoot, string valueName)
{
    RegistryKey root;
    switch (Hive_HKLM_or_HKCU.ToUpper())
    {
        case "HKLM":
            root = Registry.LocalMachine.OpenSubKey(registryRoot, false);
            break;
        case "HKCU":
            root = Registry.CurrentUser.OpenSubKey(registryRoot, false);
            break;
        default:
            throw new System.InvalidOperationException("parameter registryRoot must be either \"HKLM\" or \"HKCU\"");
    }

    return root.GetValue(valueName) != null;
}
39
Mike Bruno
string keyName=@"HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\pcmcia";
string valueName="Start";
if (Registry.GetValue(keyName, valueName, null) == null)
{
     //code if key Not Exist
}
else
{
     //code if key Exist
}
23
Javed Akram
  RegistryKey rkSubKey = Registry.CurrentUser.OpenSubKey(" Your Registry Key Location", false);
        if (rkSubKey == null)
        {
           // It doesn't exist
        }
        else
        {
           // It exists and do something if you want to
         }
2
C_sharp
public bool ValueExists(RegistryKey Key, string Value)
{
   try
   {
       return Key.GetValue(Value) != null;
   }
   catch
   {
       return false;
   }
}

Cette fonction simple ne renverra true que si une valeur est trouvée mais qu'elle n'est pas nulle, sinon retournera false si la valeur existe mais qu'elle est nulle ou que la valeur n'existe pas dans la clé.


USAGE pour votre question:

if (ValueExists(winLogonKey, "Start")
{
    // The values exists
}
else
{
    // The values does not exists
}
0
Marco Concas