public bool AddEvent(MonitorEvent ev, out MouseKeyboardEvent created)
        {
            var ret = false;

            if (!_start.HasValue)
            {
                _start  = ev.EventStart;
                created = null;
            }
            else
            {
                var start = ev.EventStart - _start.Value;
                if (start.TotalMilliseconds >= _windowSizeMs)
                {
                    created = BuildEvent();
                    _start  = ev.EventStart;
                    ret     = true;
                }
                else
                {
                    created = null;
                }
            }

            AddNewEvent(ev);
            return(ret);
        }
        private MouseKeyboardEvent BuildEvent()
        {
            if (_currentTimeLineEvents.Count > 0)
            {
                AddCurrentTimeline();
            }

            var ev = new MouseKeyboardEvent()
            {
                EventsTimeline = _timeline.ToArray(),
                Start          = _start.Value,
                End            = _start.Value.AddMilliseconds(_timeline.Last()),
                TotalTime      = SumTime(),
                Executable     = _executable
            };

            Reset();
            return(ev);
        }