直接浏览 Microsoft 知识库文章的实用程序






4.56/5 (3投票s)
2001年2月23日

91230

730
一个允许您直接从“运行”对话框浏览 MS 知识库文章的实用程序。
引言
如果你曾经需要通过编号查找知识库文章,你就会知道这个过程有点繁琐。首先浏览到 msdn.microsoft.com,在微小的搜索编辑框中输入文章编号,等待搜索结果返回,然后最终点击链接到该文章。除非现在有了这个工具,否则没有快速跳转到文章的方法!
KBLaunch 是一个 Shell 扩展,它扩展了“运行”对话框。只需输入 ?q
,然后输入文章编号,如图所示
当你按下 Enter 键时,KBLaunch 会运行你的默认浏览器,并将其指向文章的网页。
工作原理
KBLaunch 将自身注册为 Shell 执行钩子。Shell 执行钩子在两种情况下被调用
- 每当使用
ShellExecute()
或ShellExecuteEx()
运行程序时。这包括在资源管理器中双击文件。 - 每当用户在“运行”对话框中输入内容时。
钩住“运行”对话框的有趣之处在于,我们可以让用户输入不是程序名称的内容,而是指示我们的扩展执行某些操作的内容。Internet Explorer 是一个很好的例子 - 如果你输入 URL(以 http
、ftp
、www
或其他常用前缀开头),IE 提供的 Shell 执行钩子会解释该 URL 并启动浏览器。
KBLaunch 查找前缀 ?q
,然后读取命令行中的其余部分。如果它是一个正数,KBLaunch 将构造文章的 URL,并使用 ShellExecute()
运行你的默认浏览器,并将该 URL 传递给它。请注意,这利用了 IE 自己的 Shell 执行钩子(如上所述)来启动 Web 浏览器,因此你需要安装 IE 3 或更高版本。
Shell 执行钩子扩展几乎是微不足道的 - 只有一个接口需要实现,并且该接口只有一个方法。该方法是 IShellExecuteHook::Execute()
,它接收一个指向 SHELLEXECUTEINFO
结构的指针,该结构包含有关正在运行的程序的大量信息。Execute()
处理解析命令行和运行浏览器,如上所述。此代码位于示例项目中的 KBLaunchShlExt.cpp
文件中。