我想知道是否有办法(在Windows上)通过单击超链接来使预安装的应用程序启动。举一个基本的例子:
用户在其计算机上安装了一个名为SuperPing的应用程序。如果他们单击浏览器中带有以下URL的链接,它将启动应用程序。
SPing://8.8.4.4
这将导致发生以下情况:
"C:\SuperPing.exe" /ip 8.8.4.4
所以我的问题确实是,创建此挂钩并导致基于URL进行操作的方式是什么?这与正确连接到链接时iPhone可以启动特定应用程序的方式非常相似。
您可以在安装应用程序时注册自定义URL处理程序。有关更多信息,请参见MSDN。
这是该页面的相关摘录:
要注册用于处理特定URI方案的应用程序,请向中添加新的密钥以及适当的子密钥和值HKEY_CLASSES_ROOT
。根密钥必须与要添加的URI方案匹配。例如,要添加alert:
方案,请向添加alert
密钥HKEY_CLASSES_ROOT
,如下所示:
HKEY_CLASSES_ROOT
alert
URL Protocol = ""
在此新密钥下,URL Protocol
字符串值指示此密钥声明了一个自定义可插拔协议处理程序。没有此密钥,处理程序应用程序将无法启动。该值应为空字符串。
还应为DefaultIcon
和添加密钥shell
。密钥的Default
字符串值DefaultIcon
必须是用作此新URI方案的图标的文件名。该字符串采用path, iconindex
最大长度为的形式MAX_PATH
。按键下的第一个按键的名称shell
应为动作动词,例如open
。在此键下,一个command
或多个DDEEXEC
键指示应如何调用处理程序。command
和DDEEXEC
键下的值描述了如何启动处理新协议的应用程序。
最后,Default
字符串值应包含新URI方案的显示名称。以下示例显示了alert.exe
在这种情况下如何注册应用程序以处理警报方案。
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe" "%1"
当用户单击包含您的自定义URI方案的链接时,Windows Internet Explorer会启动为该URI方案注册的可插拔协议处理程序。如果open
注册表中指定的指定命令包含%1
参数,则Internet Explorer会将URI传递给已注册的可插拔协议处理程序应用程序。
因此,您需要添加以下密钥:
HKEY_CLASSES_ROOT
SPing
(Default) = "URL:SPing Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "SuperPing.exe,1"
shell
open
command
(Default) = "C:\SuperPing.exe" /url "%1"
然后,您将修改应用程序以采用“ / url”命令行参数,该参数将填充用于启动应用程序的完整URL(因此它将不会自动拆分URL后面的部分)。
语法由您决定,但随后将非常简单SPing:8.8.4.4
(不需要://
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句