private void WindowCreated(WindowInfoObject wio) { _activeWindows.Add(wio.HWnd, wio); ApplicationStatus(wio, EnumApplicationEvents.LAUNCHED); _lastEventWasLaunched = true; _lastHwndLaunched = wio.HWnd; }
private void WindowDestroyed(WindowInfoObject wio) { if (_activeWindows.ContainsKey(wio.HWnd)) { ApplicationStatus(_activeWindows[wio.HWnd], EnumApplicationEvents.CLOSED); _activeWindows.Remove(wio.HWnd); } _lastEventWasLaunched = false; }
private void WindowActivated(WindowInfoObject wio) { if (_activeWindows.ContainsKey(wio.HWnd)) { if (!_lastEventWasLaunched && _lastHwndLaunched != wio.HWnd) { ApplicationStatus(_activeWindows[wio.HWnd], EnumApplicationEvents.ACTIVATED); } } _lastEventWasLaunched = false; }
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 }); }