我想拦截一个热键(特别是<font fontName="DejaVu Sans"/>
),它会以某种方式与我的应用程序进行交互。我可以使用RegisterHotKey
方法全局注册热键。当我按CTRL V
时,我希望焦点窗口/控件也收到CTRL V
消息。我试过通过SendMessage
发送它,但似乎没有用。我最终结束了取消注册HotKey,将WM_PASTE
发送到当前窗口,然后重新注册热键。
^v
这样可以解决问题,但它会阻止鼠标(和窗口)大约半秒钟。我也害怕它在某些应用程序中不起作用,虽然我不知道我能给出什么样的例子。
答案 0 :(得分:1)
我不确定你用这个钩子试图实现什么,因为从代码示例中无法理解它。
假设您是出于审核原因(或监控排序)而做的,我建议您查看WM_HOTKEY消息的返回值。它可以&#34;说&#34;该消息未被处理,因此允许其他逻辑(例如其他挂钩)进一步处理Ctrl-V。 此外,我建议使用替代方式重新发送Ctrl-V而不是知道时间问题的SendKeys类。您是否考虑过发布消息?
我还使用lower level key pressing for hooking找到了挂钩本身的替代方法。
如果有帮助,请告诉我。