2017-05-30 4 views
0

Ich habe ein Wörterbuch, in dem i-Schlüssel speichern und ihre Pfade, und ich willÜberprüfen Sie, ob Schlüssel in der Registry C# existiert

überprüfen, ob diese Pfade existieren bereits in der Registrierung, das ist mein Wörterbuch:

public static Dictionary<string, string> AllRegKeys = new Dictionary<string,string>() 
{ 
    {"clientId", "MyApp\\credentials\\Identif"}, 
    {"clientSecret", "MyApp\\credentials\\Identif"}, 
    {"Key 1", "MyApp\\credentials\\Identif"}, 
    {"key 2 ", "MyApp\\credentials\\Identif"}, 
    {"using link ", "MyApp\\credentials\\Folder"}, 
    {"category", "MyApp\\credentials\\Folder\\Cat"}, 
    {"link1", "MyApp\\credentials\\Settings\\link"}, 
    {"link2", "MyApp\\credentials\\Settings\\link"}, 
    {"link3", "MyApp\\credentials\\Settings\\link"}, 
}; 

ich habe auf dem Wörterbuch Schleife versucht und versuchen, zwischen den Werten und existant Pfade in der Registry zu vergleichen, aber ich bin hier stecken:

foreach (KeyValuePair<string, string> entry in ConstantsField.AllRegKeys) 
{ 
    if(entry.Value==) 
} 
+4

Bitte zeigen Sie, was Sie, um versucht haben, die Informationen aus der Registrierung zu erhalten. Beispielfrage: [Registry-Schlüssel in C# finden] (https://stackoverflow.com/q/13417955/6400526) –

+0

Hi @GiladGreen, das ist eigentlich das, was ich nicht finden konnte, dachte ich über openSubKey, aber ich denke, openSubKey erstellt nur am ich falsch? – Code4Living

+0

Nicht sicher, aber was ich meinte ist, dass Sie Hilfe anfordern, um zu überprüfen, ob Ihre Werte aus dem Wörterbuch in der Registrierung vorhanden sind, aber Ihr Code nicht zeigt, dass Sie tatsächlich auf die Registrierung zugreifen. Bitte zeigen Sie einen Versuch mit dem Versuch, die Informationen aus der Registrierung zu bekommen –

Antwort

3

Sie könnten eine einfache Methode schreiben wie folgt zu überprüfen:

private bool KeyExists(RegistryKey baseKey, string subKeyName) 
{ 
    RegistryKey ret = baseKey.OpenSubKey(subKeyName); 

    return ret != null; 
} 

Anschließend können Sie es so nennen:

foreach (KeyValuePair<string, string> entry in ConstantsField.AllRegKeys) 
{ 
    //adjust the baseKey 
    if(KeyExists(Registry.LocalMachine, $"{entry.Value}\\{entry.key}") 
    { 
      //do something 
    } 
} 
+0

Vielen Dank @ RomanoZumbé das ist, was ich gesucht habe – Code4Living

+0

Wahrscheinlich am besten zu verwenden 'using (RegistryKey ret = baseKey.OpenSubKey (subKeyName))' –

Verwandte Themen