Пример #1
0
 /// <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);
 }
Пример #2
0
        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);//执行完关闭
                });
            };
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
                }
            }
        }
Пример #5
0
 /// <summary>
 /// 记录鼠标
 /// </summary>
 /// <param name="e"></param>
 private void MouseHookMouseLog(HookMouseEventArgs e)
 {
     MouseHisDataList.Add(e);
     CustomEventLogger.LogMouseEvent(e);
 }
Пример #6
0
 /// <summary>
 /// 记录键盘
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void keyboardHook_KeyLog(object sender, HookKeyEventArgs e)
 {
     KeyHisDataList.Add(e);
     CustomEventLogger.LogKeyEvent(e);
 }