【问题标题】:How to hook hotkeys in winforms or WPF from a .NET 2.0 assembly?如何从 .NET 2.0 程序集挂钩 winforms 或 WPF 中的热键?
【发布时间】:2010-12-23 13:31:57
【问题描述】:

我的程序集以 .NET 2.0 为目标,以与广泛的应用程序兼容。当与桌面应用程序(winforms 或 WPF)一起使用时,我想挂钩某些热键并弹出无模式对话框窗口。棘手的一点是找到一个可以在 .NET 2.0 下实现且与 WPF 兼容的解决方案。

对于winforms,我可以使用RegisterHotKey 或在PreFilterMessage 方法中实现IMessageFilter 和挂钩WM_KEYDOWN,但它们不适用于WPF。

对于 WPF,InputBinding 类非常好,但这在 .NET 2.0 中不可用。

理想的解决方案是:

  • 构建面向 .NET 的程序集

  • WPF 或 Winforms 的挂钩键击

  • 提供应用程序范围,而不是系统范围

【问题讨论】:

    标签: wpf windows winforms hotkeys winforms-interop


    【解决方案1】:

    您可以构建基于 Windows API(系统范围挂钩)的通用解决方案。 Don Esposito 写了一篇很棒的文章。这是一个链接

    http://msdn.microsoft.com/en-us/magazine/cc188966.aspx

    如果您不想要系统范围的挂钩,您也可以编写应用程序挂钩。这实际上更容易实现。我认为唐也涵盖了这一点。

    【讨论】:

    • 谢谢,这是一篇很棒的文章,但它是从 2002 年开始的,并没有讨论 WPF 互操作,这确实是我问题的核心。
    猜你喜欢
    • 2014-08-23
    • 2010-12-07
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多