/// <summary> /// Internal method to get and save the registry value entry /// </summary> /// <param name="rootRegKey"></param> /// <param name="keyValue"></param> private void ReadRegistryValue(RegistryKey rootRegKey, ModelRegistryKeyValue keyValue) { object objValue = rootRegKey.GetValue(keyValue.Name); if (objValue == null) { logger.Warn(keyValue.Name + " not found in registry"); keyValue.AddLog(ExceptionLevel.WARN, keyValue.Name + " not found in registry"); } else { keyValue.ParseAndSetValue(objValue, rootRegKey.GetValueKind(keyValue.Name)); } }
/// <summary> /// Read the windows registry for only one path entry /// </summary> /// <param name="regPathQuery"></param> protected void ReadRegistryValues(ModelRegistryKey regPathQuery) { // Get the registryKey instance using (RegistryKey rootRegKey = InitializeRegistryKey(regPathQuery.RegsitryPath.RootPath, regPathQuery.RegsitryPath.SubKeyPath, RegistryView.Registry32)) { // Add only those values requested for if (this.QueryFilter.ProcQueryEnum.DoAddAllValues() == false) { foreach (ModelRegistryKeyValue keyValue in regPathQuery.KeyValuePairs) { ReadRegistryValue(rootRegKey, keyValue); } } else { // Add all the values foreach (string valueName in rootRegKey.GetValueNames()) { ModelRegistryKeyValue keyValue = regPathQuery.GetValueObject(valueName); ReadRegistryValue(rootRegKey, keyValue); } } } }