0

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

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

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

一个理想的解决方案是:

  • 构建面向 .NET 的程序集

  • WPF 或 Winforms 的 Hook 击键

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

4

1 回答 1

0

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

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

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

于 2009-12-05T14:24:51.577 回答