【发布时间】:2015-04-13 21:47:33
【问题描述】:
我已经尝试在我的 Word 插件中使用快捷键的钩子方法,正如我在此处找到的 Using shortcut keys to call a function in an Office Add-in 虽然这可以调用我的方法,但它确实将快捷方式的字母/数字写入文档。因此,如果我的快捷方式是 ctrl+2,它会在我的方法运行后将“2”写入我的文档。真正奇怪的是,如果您在未加载插件时在 Word 中按 ctrl+2,它不会在文档中写入“2”,因此在运行插件时没有理由这样做。有谁知道如何解决这个问题或有任何其他 Word VSTO 插件快捷方式的方法?我在 VS 2012 中编写插件并使用 Word 2010。
【问题讨论】:
-
你每次都在调用 return (int)CallNextHookEx(_hookID, nCode, wParam, lParam) ,所以 Keydown 的事件会被其他监听器冒泡(比如文档)。如果您不希望该事件进一步发布,请尝试返回 1。
-
非常感谢马蒂亚斯。这样可行。作为一个额外的问题,c# 告诉我我不应该再使用 AppDomain.GetCurrentThreadId() 因为它已经过时了(尽管它似乎仍然有效)。我试图用 System.Threading.Thread.CurrentThread.ManagedThreadId 代替它,但是(这是 MS 网站所说的替代品,但这不起作用。有什么想法我应该在这里做什么?
-
我会作为答案回复