protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); _windowHandle = new WindowInteropHelper(this).Handle; Handle = _windowHandle; _source = HwndSource.FromHwnd(_windowHandle); _source.AddHook(HookCallbackManager.WindowsKeyHookCallback); WinApiProxy.RegisterHotKey(_windowHandle, KeyHookConstants.HOTKEY_ID, KeyHookConstants.MOD_ALT, KeyHookConstants.VK_OEM_COMMA); //ALT + , _windowEventCallback = HookCallbackManager.WindowsWindowCreatedHook; HookManager.RegisterCallBack(ref _windowEventCallback); HookManager.SubscribeToWindowEvents(); }
protected override void OnClosed(EventArgs e) { _source.RemoveHook(HookCallbackManager.WindowsKeyHookCallback); WinApiProxy.UnregisterHotKey(_windowHandle, KeyHookConstants.HOTKEY_ID); base.OnClosed(e); }