/// <summary> /// 保存日志 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SaveLogMenuItem_OnClick(object sender, RoutedEventArgs e) { CustomEventLogger.WriteLog(); CustomEventLogger.SaveHisLog(MouseHisDataList.ToList()); CustomEventLogger.SaveHisLog(KeyHisDataList.ToList()); MessageBox.Show("保存成功!", "恭喜", MessageBoxButton.OK, MessageBoxImage.Information); }
public MainWindow(string[] strArgs) { InitializeComponent(); //-----参数的处理----- var compareKey = string.Empty; foreach (var strArg in strArgs) { compareKey = "-Mouse="; if (strArg.StartsWith(compareKey)) { //指定Mouse历史文件路径 var fileName = strArg.Remove(0, compareKey.Length); var mouseHis = CustomEventLogger.GetHookMouseEventArgses(fileName); MouseHisDataList = new ObservableCollection <HookMouseEventArgs>(mouseHis); } else { compareKey = "-Key="; if (strArg.StartsWith(compareKey)) { //指定Key历史文件路径 var fileName = strArg.Remove(0, compareKey.Length); var keyHis = CustomEventLogger.GetHookKeyEventArgses(fileName); KeyHisDataList = new ObservableCollection <HookKeyEventArgs>(keyHis); } else { //设定关键词 var keyValueIndex = strArg.IndexOf('='); //获取关键词分隔符 var key = strArg.Substring(1, keyValueIndex - 1); //取得关键词 var value = strArg.Substring(keyValueIndex + 1); //取得替换值 foreach (var hookKeyEventArgse in KeyHisDataList) { if (hookKeyEventArgse.InputString == key) { hookKeyEventArgse.InputString = value; } } } } } //-----直接执行----- argAction = () => { ManagedTask.FactoryStart(() => { SimulateAll(); UIThread.Invoke(Close);//执行完关闭 }); }; }
/// <summary> /// 获取键盘组合后的结果 /// </summary> /// <returns></returns> public IList <HookKeyEventArgs> GetKeyCombineResult() { var resultList = new List <HookKeyEventArgs>(); if (KeyHisDataList.Count == 0) { return(resultList); } var firstHookFile = KeyHisDataList.First();//第一行记录 var firstData = CustomEventLogger.GetHookKeyEventArgses(firstHookFile.FileName); //第一行,直接加入集合 foreach (var hookKeyEventArgse in firstData) { resultList.Add(hookKeyEventArgse); } foreach (var hookFile in KeyHisDataList) { var tmpData = CustomEventLogger.GetHookKeyEventArgses(hookFile.FileName); //当前行历史记录 if (hookFile != firstHookFile) { //重新根据diffTime组合 var tmp_Previous = tmpData.First(); foreach (var hookKeyEventArgs in tmpData) { var copyEvent = HookKeyEventArgs.Copy(hookKeyEventArgs); //拷贝新对象,用于新集合 var diffTimeSpan = copyEvent.EventTimeStamp - tmp_Previous.EventTimeStamp; //得出每次记录的间隔 if (tmp_Previous == tmpData.First()) { diffTimeSpan = TimeSpan.FromMilliseconds(hookFile.OpDiffTime); //新行的首次记录附加到前一个结果后面 } copyEvent.EventTimeStamp = resultList.Last().EventTimeStamp.Add(diffTimeSpan); //重新设定新的时间戳 //--加入集合-- resultList.Add(copyEvent); //-设置值- tmp_Previous = hookKeyEventArgs; } } } return(resultList); }
/// <summary> /// 打开记录文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OpenLogMenuItem_OnClick(object sender, RoutedEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = false; dialog.Filter = "db日志|*.db|所有文件|*.*"; dialog.FilterIndex = 0; if (dialog.ShowDialog() == true) { var fileName = dialog.FileName; if (fileName.Contains("Mouse")) { var mouseHis = CustomEventLogger.GetHookMouseEventArgses(fileName); MouseHisDataList = mouseHis == null ? new ObservableCollection <HookMouseEventArgs>() : new ObservableCollection <HookMouseEventArgs>(mouseHis); } else { var keyHis = CustomEventLogger.GetHookKeyEventArgses(fileName); KeyHisDataList = keyHis == null ? new ObservableCollection <HookKeyEventArgs>() : new ObservableCollection <HookKeyEventArgs>(keyHis); } } }
/// <summary> /// 记录鼠标 /// </summary> /// <param name="e"></param> private void MouseHookMouseLog(HookMouseEventArgs e) { MouseHisDataList.Add(e); CustomEventLogger.LogMouseEvent(e); }
/// <summary> /// 记录键盘 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void keyboardHook_KeyLog(object sender, HookKeyEventArgs e) { KeyHisDataList.Add(e); CustomEventLogger.LogKeyEvent(e); }