检查注册表中是否存在密钥 [英] Check if key exists in Registry
本文介绍了检查注册表中是否存在密钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 Dictionary
用于存储密钥及其路径,我想检查注册表中是否已经存在这些路径.
I have a Dictionary<sting,string>
where I store keys and their paths and I want to check if those paths exist already in the Registry.
那是我的字典:
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"},
};
我尝试在字典上循环并尝试比较注册表中的值和现有路径,但我被困在这里:
I've tried to loop on the dictionary and try to compare between the values and existing paths in the Registry but i'm stuck in here:
foreach (KeyValuePair<string, string> entry in ConstantsField.AllRegKeys)
{
if(entry.Value== )
}
推荐答案
你可以写一个简单的方法来检查:
You could write a simple method to check like this:
private bool KeyExists(RegistryKey baseKey, string subKeyName)
{
RegistryKey ret = baseKey.OpenSubKey(subKeyName);
return ret != null;
}
然后你可以这样称呼它:
You can then call it like this:
foreach (KeyValuePair<string, string> entry in ConstantsField.AllRegKeys)
{
//adjust the baseKey
if(KeyExists(Registry.LocalMachine, $"{entry.Value}\\{entry.key}")
{
//do something
}
}
这篇关于检查注册表中是否存在密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文