专栏首页林德熙的博客WPF 添加窗口消息钩子方法

WPF 添加窗口消息钩子方法

本文告诉大家如何添加窗口消息钩子

窗口消息钩子需要先拿到窗口指针然后需要在窗口初始化完成之后才可以做到,推荐的做法请看代码

        public MainWindow()
        {
            InitializeComponent();

            SourceInitialized += OnSourceInitialized;
        }

        private void OnSourceInitialized(object sender, EventArgs e)
        {
            var windowInteropHelper = new WindowInteropHelper(this);
            var hwnd = windowInteropHelper.Handle;

            HwndSource source = HwndSource.FromHwnd(hwnd);
            source.AddHook(Hook);
        }

        private IntPtr Hook(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam, ref bool handled)
        {
            return IntPtr.Zero;
        } 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • dotnet 的 TaskCompletionSource 的 TrySetResult 是线程安全

    在创建一个 TaskCompletionSource 期望让等待的逻辑只会被调用一次,而调用的是多线程,可以使用 TrySetResult 方法,这个方法是线程...

    林德熙
  • WPF 在 Alt+Tab 隐藏窗口

    最近在开发一个 Toast 窗口,因为这个窗口不能在显示之后关闭,因为可能用户会不停让窗口显示,所以只能 Hide 。但是这样会在 切换窗口看到这个窗口,所以我...

    林德熙
  • 解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题 删除重复的特性不自动创建 AssemblyInfo 特性

    现在很多小伙伴开始使用了 dotnet core 项目,但是如果是从以前的 dotnet framework 的项目修改为 dotnet core 项目格式,会...

    林德熙
  • [888]python内置函数vars()|dir()|locals()

    而vars()则打印属性与属性的值(属性:属性值…),不带参数功能和locals()函数一样

    周小董
  • IM开源示例——Seatalk

    用户1907613
  • Keras的基本使用(1)--创建,编译,训练模型

    Keras 是一个用 Python 编写的,高级的神经网络 API,使用 TensorFlow,Theano 等作为后端。快速,好用,易验证是它的优点。 官方...

    caoqi95
  • Java基础提升篇:equals()方法和“==”运算符

    好好学java
  • Oracle WebLogic安全漏洞预警

    安恒信息 网络安全前沿资讯、 应急响应解决方案、技术热点深度解读 漏洞安全公告 2018年4月17日,Oracle官方发布了2018年4月安全更新公告,包含了其...

    安恒信息
  • PCIe基础知识与例程分析

    在赛灵思7系列FPGA中,使用AXIStream总线进行通信,PCIe的TLP包使用AXI总线传输,在AXI总线上数据大端对齐,即高位数据在地址的高位,在传输时...

    根究FPGA
  • NPN_InvalidateRect的堆栈

    node.dll!content::WebSchedulerImpl::postTimerTask(const blink::WebTraceLocatio...

    龙泉寺扫地僧

扫码关注云+社区

领取腾讯云代金券