我的程序集以.NET 2.0为目标,可与各种应用程序兼容。当与桌面应用程序(winforms或WPF)一起使用时,我想挂钩某些热键和弹出无模式对话框窗口。棘手的一点是找到一个可以在与WPF兼容的.NET 2.0下实现的解决方案。
对于winforms,我可以使用RegisterHotKey或在WM_KEYDOWN方法中实现IMessageFilter并挂钩PreFilterMessage,但它们与WPF不兼容。
对于WPF,InputBinding类非常好,但在.NET 2.0中不可用。
理想的解决方案是:
构建面向.NET的程序集
为WPF或Winforms
提供应用程序范围,而非系统范围
答案 0 :(得分:0)
您可以构建基于Windows API(系统范围的挂钩)的通用解决方案。 Don Esposito写了一篇很棒的文章。这是一个链接
http://msdn.microsoft.com/en-us/magazine/cc188966.aspx
如果您不想要系统范围的挂钩,也可以编写应用程序挂钩。这实际上更容易实现。我也认为唐也是这样。