79 votes

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

Comment vérifier si une valeur de registre existe par 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);
}
 

67voto

26071986 Points 1082

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 les noms des valeurs pour la clé actuelle et vérifier si ce tableau contient le nom de valeur nécessaire.

45voto

Mike Bruno Points 143
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\"");
    }

    if (root.GetValue(valueName) == null)
        return false;
    else
        return true;
}

28voto

Javed Akram Points 6621
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
}

2voto

C_sharp Points 100
  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
         }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X