这里介绍一种拦截键盘事件监听方式,在WPF中窗体初始化完成后会进入一个SourceInitialized事件,可通过重写该事件给窗体添加一个接收Windows消息钩子。
Hook(钩子)就是对Windows系统的一些消息或是API函数进行拦截和监控的处理平台 。
/// <summary>
/// 窗体初始化完成后,给窗体添加钩子监听窗口消息
/// </summary>
/// <param name="e"></param>
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
((HwndSource)PresentationSource.FromVisual(this)).AddHook(myHook);
}
AddHook方法需要传入一个IntPtr HwndSourceHook委托。