我的程序集以 .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 击键
提供应用程序范围,而不是系统范围的范围