首页 > 解决方案 > 使用 ProcessCmdKey 捕获 F1 调用两个网页

问题描述

我正在使用 ProcessCmdKey 来捕获 F1 键,以便在浏览器中显示来自 Web 的适当帮助屏幕。除了浏览器显示两个网页,我的和微软的“我们如何帮助您?”之外,一切都按预期工作。页。

关键因素是我的代码是 Outlook 的 COM 插件。它启动一个表单,代码包含以下代码:

Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
                Select Case keyData
                    Case Keys.F1
                        ShowHelp()
                        Return True
                    Case Else
                        Return MyBase.ProcessCmdKey(msg, keyData)
                End Select

                Return True
        End Function

在我看来,我的 ShowHelp 例程被正确调用,但 Windows 通过显示与 Office365 相关的页面继续处理 F1 键本身。无论我返回 True 还是 False,都会发生这种情况。

我错过了什么?

标签: vb.net

解决方案


感谢安迪的回复。如果我注释掉我的 ShowHelp 子程序,那么我仍然会得到 Microsoft 网页,尽管我没有得到我的网页。是的,如果从 DLL 运行加载项,我仍然可以获得 MS 网页 - 而不是在 VS 中。Microsoft Outlook 开发者论坛的一位 Outlook 专家表示,Outlook 不会接收外部 ProcessCmdKey 指令,唯一的方法是捕获较低级别的 Windows 消息。我已经选择了向我的表单添加帮助按钮的更简单的选项。– 迈克 VE


推荐阅读