private void explainToolStripMenuItem_Click(object sender, EventArgs e) { foreach (ListViewItem lvi in listView1.SelectedItems) { UserAssistEntry uae = (UserAssistEntry)lvi.Tag; frmExplain fe = new frmExplain(); fe.title = uae.ReadableName; fe.explanation = uae.Explain(); fe.ShowDialog(); fe.Dispose(); } }
private void clearToolStripMenuItem_Click(object sender, EventArgs e) { UserAssistKey uak; foreach (ListViewItem lvi in listView1.SelectedItems) { UserAssistEntry uae = (UserAssistEntry)lvi.Tag; uak.key = lvi.SubItems[0].Text; uak.index = int.Parse(lvi.SubItems[1].Text); UAE.ClearValue(uak.key, uae.name); UAE.entries.Remove(uak); lvi.Remove(); } }
public List <UserAssistEntry> GetUserAssistEntries() { List <UserAssistEntry> entries = new List <UserAssistEntry>(); try { RegistryKey userAssistKey = Registry.CurrentUser.OpenSubKey(_USER_ASSIST_REG_KEY); string[] subkeyNames = userAssistKey.GetSubKeyNames(); foreach (string subkeyName in subkeyNames) { if (subkeyName.StartsWith(_EXECUTABLE_FILE_REG_KEY_PREFIX) || subkeyName.StartsWith(_SHORTCUT_REG_KEY_PREFIX)) { RegistryKey executablesFilesSubkey = userAssistKey.OpenSubKey(subkeyName); RegistryKey countSubkey = executablesFilesSubkey.OpenSubKey(_COUNT_REG_KEY); string[] valueNames = countSubkey.GetValueNames(); foreach (string valueName in valueNames) { UserAssistEntry uae = new UserAssistEntry(); //decoding information from https://intotheboxes.files.wordpress.com/2010/04/intotheboxes_2010_q1.pdf byte[] value = (byte[])countSubkey.GetValue(valueName); long fileTime = BitConverter.ToInt64(value, 60); uae.Path = ROT13Decoder.Decode(valueName); uae.LastLaunchTime = DateTime.FromFileTime(fileTime); uae.RunCount = BitConverter.ToInt32(value, 4); uae.FocusCount = BitConverter.ToInt32(value, 8); uae.FocusTimeMillis = BitConverter.ToInt32(value, 12); entries.Add(uae); } } else { continue; } } } catch (Exception exc) { MyDebugger.Instance.LogMessage(exc, DebugVerbocity.Exception); } return(entries); }
public int Compare(object x, object y) { ListViewItem lviA = (ListViewItem)x; ListViewItem lviB = (ListViewItem)y; UserAssistEntry uaeA = (UserAssistEntry)lviA.Tag; UserAssistEntry uaeB = (UserAssistEntry)lviB.Tag; int result = 0; switch (lviA.ListView.Columns[CurrentColumn].Name) { case "Key": case "Name": case "Unknown": result = String.Compare(lviA.SubItems[CurrentColumn].Text, lviB.SubItems[CurrentColumn].Text); break; case "Session": if (!uaeA.session.HasValue && !uaeB.session.HasValue) { result = 0; } else if (!uaeA.session.HasValue && uaeB.session.HasValue) { result = -1; } else if (uaeA.session.HasValue && !uaeB.session.HasValue) { result = 1; } else { result = uaeA.session.Value.CompareTo(uaeB.session.Value); } break; case "Counter": if (!uaeA.count.HasValue && !uaeB.count.HasValue) { result = 0; } else if (!uaeA.count.HasValue && uaeB.count.HasValue) { result = -1; } else if (uaeA.count.HasValue && !uaeB.count.HasValue) { result = 1; } else { result = uaeA.count.Value.CompareTo(uaeB.count.Value); } break; case "Last": if (!uaeA.last.HasValue && !uaeB.last.HasValue) { result = 0; } else if (!uaeA.last.HasValue && uaeB.last.HasValue) { result = -1; } else if (uaeA.last.HasValue && !uaeB.last.HasValue) { result = 1; } else { result = uaeA.last.Value.CompareTo(uaeB.last.Value); } break; case "Last UTC": if (!uaeA.lastutc.HasValue && !uaeB.lastutc.HasValue) { result = 0; } else if (!uaeA.lastutc.HasValue && uaeB.lastutc.HasValue) { result = -1; } else if (uaeA.lastutc.HasValue && !uaeB.lastutc.HasValue) { result = 1; } else { result = uaeA.lastutc.Value.CompareTo(uaeB.lastutc.Value); } break; case "Focus counter?": if (!uaeA.countAll.HasValue && !uaeB.countAll.HasValue) { result = 0; } else if (!uaeA.countAll.HasValue && uaeB.countAll.HasValue) { result = -1; } else if (uaeA.countAll.HasValue && !uaeB.countAll.HasValue) { result = 1; } else { result = uaeA.countAll.Value.CompareTo(uaeB.countAll.Value); } break; case "Focus time?": if (!uaeA.totalRunningTime.HasValue && !uaeB.totalRunningTime.HasValue) { result = 0; } else if (!uaeA.totalRunningTime.HasValue && uaeB.totalRunningTime.HasValue) { result = -1; } else if (uaeA.totalRunningTime.HasValue && !uaeB.totalRunningTime.HasValue) { result = 1; } else { result = uaeA.totalRunningTime.Value.CompareTo(uaeB.totalRunningTime.Value); } break; case "Flags?": if (!uaeA.flags.HasValue && !uaeB.flags.HasValue) { result = 0; } else if (!uaeA.flags.HasValue && uaeB.flags.HasValue) { result = -1; } else if (uaeA.flags.HasValue && !uaeB.flags.HasValue) { result = 1; } else { result = uaeA.flags.Value.CompareTo(uaeB.flags.Value); } break; default: result = int.Parse(lviA.SubItems[CurrentColumn].Text).CompareTo(int.Parse(lviB.SubItems[CurrentColumn].Text)); break; } return(result * (order == SortOrder.Ascending ? 1 : -1)); }