URI 协议处理程序允许开发人员将自定义协议与他们的应用程序相关联,以便单击指向我们自定义协议的链接将启动应用程序,而不是在浏览器中打开它。Zoom 和许多其他应用程序使用此功能在单击其 Web 链接时启动其应用程序。
我们使用此方法允许用户在单击特定链接时启动 Microsoft Word。我们的注册表项如下所示(test
是我们自定义协议的名称):
HKCR
test
shell
open
command
(default) => winword /t%1
只要安装了 Office 的标准桌面版本(例如 Office 2016、Office 2019 或 Office 365),它就可以正常工作并在单击链接时启动已安装的 Microsoft Word 版本,但似乎不适用于 Microsoft Store Office 版本。
我以为command
上面的节点只是一个shell命令,会被Windows启动,但似乎并非如此。在命令提示符或 Windows 运行对话框甚至批处理文件上键入winword
可以正确启动 Word,但在协议处理程序中使用它似乎没有做任何事情。有趣的是,浏览器确实显示“网站想要启动 Word”提示,但选择“是”似乎没有做任何事情。我也试过移除任何额外的开关,winword
但没有用。替换winword
为其他一些应用程序,例如notepad.exe
正常工作。
我们需要做一些特别的事情来运行 Window Store 应用程序吗?
复制它很简单。
- 只需将上述密钥添加到您的注册表中即可。
- 确保您的计算机上安装了 Microsoft Word。
- 创建一个包含超链接的 HTML 页面,其
href
属性设置为test://example.com
. - 在浏览器中打开页面并单击链接。
这应该会显示一个确认提示,询问您是否要启动 Word。如果您拥有 Word 的标准桌面版本,单击 Yes 将启动 Word,但如果您拥有 Store 版本,则不会执行任何操作。