private static RegistryKey GetRootRegistryKey(RegistryCategory category) { RegistryKey key; switch (category) { case RegistryCategory.ClassesRoot: key = Registry.ClassesRoot; break; case RegistryCategory.CurrentUser: key = Registry.CurrentUser; break; case RegistryCategory.LocalMachine: key = Registry.LocalMachine; break; case RegistryCategory.User: key = Registry.Users; break; case RegistryCategory.CurrentConfig: key = Registry.CurrentConfig; break; case RegistryCategory.DynDa: key = Registry.DynData; break; case RegistryCategory.PerformanceData: key = Registry.PerformanceData; break; default: key = Registry.LocalMachine; break; } return key; }
public static string GetKeyValue(RegistryCategory category, string path, string name) { try { RegistryKey root = GetRootRegistryKey(category); RegistryKey subkey = root.OpenSubKey(path); if (subkey == null) return ""; object ret = subkey.GetValue(name); if (ret == null) return ""; else return ret.ToString(); } catch { } return ""; }