Пример #1
0
        private void WindowCreated(WindowInfoObject wio)
        {
            _activeWindows.Add(wio.HWnd, wio);
            ApplicationStatus(wio, EnumApplicationEvents.LAUNCHED);

            _lastEventWasLaunched = true;
            _lastHwndLaunched     = wio.HWnd;
        }
Пример #2
0
        private void WindowDestroyed(WindowInfoObject wio)
        {
            if (_activeWindows.ContainsKey(wio.HWnd))
            {
                ApplicationStatus(_activeWindows[wio.HWnd], EnumApplicationEvents.CLOSED);
                _activeWindows.Remove(wio.HWnd);
            }

            _lastEventWasLaunched = false;
        }
Пример #3
0
        private void WindowActivated(WindowInfoObject wio)
        {
            if (_activeWindows.ContainsKey(wio.HWnd))
            {
                if (!_lastEventWasLaunched && _lastHwndLaunched != wio.HWnd)
                {
                    ApplicationStatus(_activeWindows[wio.HWnd], EnumApplicationEvents.ACTIVATED);
                }
            }

            _lastEventWasLaunched = false;
        }
Пример #4
0
        private void ApplicationStatus(WindowInfoObject wio, EnumApplicationEvents appEvent)
        {
            var timeStamp = DateTime.Now;

            wio.AppTitle = appEvent == EnumApplicationEvents.CLOSED ? wio.AppTitle : WindowHookHelper.GetWindowText(wio.HWnd);
            wio.AppPath  = appEvent == EnumApplicationEvents.CLOSED ? wio.AppPath : WindowHookHelper.GetAppPath(wio.HWnd);
            wio.AppName  = appEvent == EnumApplicationEvents.CLOSED ? wio.AppName : WindowHookHelper.GetAppDescription(wio.AppPath);
            OnAppWindowChange?.Invoke(null, new ApplicationHookEvenArgs()
            {
                WindowInfo = wio, Events = appEvent
            });
        }