private void treeViewRegistry_AfterSelect(object sender, TreeViewEventArgs e) { try { dataGridViewValues.Rows.Clear(); if (e.Node.Tag is AddinKey) { panelDeactivatedElements.Visible = false; panelInfos.Visible = false; panelRegistryValues.Visible = true; AddinKey addinKey = e.Node.Tag as AddinKey; foreach (AddinKeyValue item in addinKey.Values) { dataGridViewValues.Rows.Add(); DataGridViewRow row = dataGridViewValues.Rows[dataGridViewValues.Rows.Count - 1]; row.Cells[0].Value = GetValueKindImage(item.Type); row.Cells[1].Value = item.Name; row.Cells[2].Value = item.Type; row.Cells[3].Value = item.Value; } } else if (e.Node.Tag is DisabledValue) { panelRegistryValues.Visible = false; panelInfos.Visible = false; panelDeactivatedElements.Visible = true; DisabledValue disabledValue = e.Node.Tag as DisabledValue; labelOfficeProduct.Text = disabledValue.OfficeProductVersion; labelDisabledRegistryValue.Text = disabledValue.Value; labelDisabledRegistryPath.Text = disabledValue.Parent.RegistryPath + " - " + disabledValue.ValueName; } else { panelRegistryValues.Visible = false; panelDeactivatedElements.Visible = false; panelInfos.Visible = true; } } catch (Exception exception) { ErrorForm errorForm = new ErrorForm(exception, ErrorCategory.NonCritical, _currentLanguageID); errorForm.ShowDialog(this); } }
internal NotifyKind CheckChangedValueCount(ref RegistryChangeInfo changeInfos) { RegistryKey key = _rootKey.OpenSubKey(_registryPath); if (null == key) { bool found = false; foreach (string keyExists in _keyExists) { if (keyExists == (RootKey.ToString() + "\\" + _registryPath)) { found = true; break; } } if (found) { _parent.RaisePropertyChanged(this); _keyExists.Remove(RootKey.ToString() + "\\" + _registryPath); } } else { bool found = false; foreach (string keyExists in _keyExists) { if (keyExists == (RootKey.ToString() + "\\" + _registryPath)) { found = true; break; } } if (!found) { _keyExists.Add(RootKey.ToString() + "\\" + _registryPath); } string[] valueNames = key.GetValueNames(); int valueCount = key.ValueCount; if (valueCount != _lastValueCount) { _parent.RaisePropertyChanged(this); NotifyKind returnKind; if ((valueCount > _lastValueCount) && (!_parent.FirstRun)) { NewDeactivatedElementInfo newElementInfo = new NewDeactivatedElementInfo(); newElementInfo.RootKey = _rootKey; newElementInfo.KeyPath = _registryPath; string newValueName = GetNewValueName(valueNames, _valueNames); object regValue = key.GetValue(newValueName, null); regValue = DisabledValue.ConvertDisabledItemValueName(regValue, newValueName); newElementInfo.Name = regValue as string; newElementInfo.OfficeProductVersion = OfficeProductVersion; changeInfos = newElementInfo; _valueNames = valueNames; returnKind = NotifyKind.DisabledItemNew; } else if (!_parent.FirstRun) { DeleteDeactivatedElementInfo deleteElementInfo = new DeleteDeactivatedElementInfo(); deleteElementInfo.RootKey = _rootKey; deleteElementInfo.KeyPath = _registryPath; deleteElementInfo.Name = GetDeletedValueName(valueNames, _valueNames); string convertedName = null; _convertedNames.TryGetValue(deleteElementInfo.Name, out convertedName); _convertedNames.Remove(deleteElementInfo.Name); deleteElementInfo.Name = convertedName; deleteElementInfo.OfficeProductVersion = OfficeProductVersion; changeInfos = deleteElementInfo; _valueNames = valueNames; returnKind = NotifyKind.DisabledItemDelete; } else { foreach (string name in valueNames) { string existingName = null; _convertedNames.TryGetValue(name, out existingName); if (null == existingName) { object regValue = key.GetValue(name, null); regValue = DisabledValue.ConvertDisabledItemValueName(regValue, name); _convertedNames.Add(name, regValue as string); } } returnKind = NotifyKind.Nothing; } _lastValueCount = valueCount; return(returnKind); } _valueNames = valueNames; key.Close(); } return(NotifyKind.Nothing); }