private RegSearchArgs GetSearchArgs(RegistryKey[] keys) { RegSearchLookAt lookAt = GetSearchTarget(); RegSearchArgs searchArgs = new RegSearchArgs(keys, txtPattern.Text, chkMatchCase.Checked, lookAt, chkUseRegex.Checked); return(searchArgs); }
private void btnFind_Click(object sender, EventArgs e) { if (btnFind.Text == "F&ind") { RegistryKey[] keys; if (cmbSearch.Text == "All Hives") { keys = new RegistryKey[cmbSearch.Items.Count]; for (int i = 0; i < cmbSearch.Items.Count; i++) { keys[i] = RegUtility.ParseRootKey(cmbSearch.Items[i].ToString()); } } else { keys = new RegistryKey[] { RegUtility.ParseRootKey(cmbSearch.Text) } }; if (txtBranch.Text != String.Empty) { keys[0] = keys[0].OpenSubKey(txtBranch.Text); if (keys[0] == null) { UIUtility.DisplayError(this, Properties.Resources.Error_InvalidKey, txtBranch); return; } } RegSearchArgs searchArgs = GetSearchArgs(keys); StartSearch(); try { searcher.Start(searchArgs); } catch (ArgumentException ex) { toolStripStatusLabel1.Text = "Ready."; UIUtility.DisplayError(this, ex.Message, txtPattern); EnableSearch(); return; } searchStarted = true; } else { btnFind.Enabled = false; searcher.Stop(); } }
public void Start(RegSearchArgs args) { searchArgs = args; if (args.UseRegEx) { comparer = new RegistryExplorer.Comparers.RegexComparer(args.Pattern, !args.MatchCase); } else { comparer = new RegistryExplorer.Comparers.StringComparer(args.Pattern, !args.MatchCase); } matches = new System.Collections.Generic.List <RegSearchMatch>(); worker.RunWorkerAsync(); }