/// <summary> /// 记录鼠标 /// </summary> /// <param name="e"></param> private void MouseHookMouseLog(HookMouseEventArgs e) { XPosition = e.XPosition; YPositoin = e.YPosition; if (e.ClickButton == MouseButton.Left && e.MouseEventType == MouseEventType.MouseDown) { MouseHisDataList.Add(e); } }
/// <summary> /// 获取鼠标组合后的结果 /// </summary> /// <returns></returns> public IList <HookMouseEventArgs> GetMouseCombineResult() { var resultList = new List <HookMouseEventArgs>(); if (MouseHisDataList.Count == 0) { return(resultList); } var firstHookFile = MouseHisDataList.First();//第一行记录 var firstData = CustomEventLogger.GetHookMouseEventArgses(firstHookFile.FileName); //第一行,直接加入集合 foreach (var hookMouseEventArgse in firstData) { resultList.Add(hookMouseEventArgse); } foreach (var hookFile in MouseHisDataList) { var tmpData = CustomEventLogger.GetHookMouseEventArgses(hookFile.FileName); //当前行历史记录 if (hookFile != firstHookFile) { //重新根据diffTime组合 var tmp_Previous = tmpData.First(); foreach (var hookMouseEventArgse in tmpData) { var copyEvent = HookMouseEventArgs.Copy(hookMouseEventArgse); //拷贝新对象,用于新集合 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 = hookMouseEventArgse; } } } return(resultList); }
/// <summary> /// 记录鼠标 /// </summary> /// <param name="e"></param> private void MouseHookMouseLog(HookMouseEventArgs e) { MouseHisDataList.Add(e); CustomEventLogger.LogMouseEvent(e); }