admin 管理员组

文章数量: 887018

最近由于项目需要实现一个类似迅雷从浏览器触发下载链接的功能,于是研究了一下怎么从浏览器中打开本地应用(仅限windows平台)。
首先上网查了一些资料,然后发现这个功能的实现主要跟注册表有关系。需要在制作程序安装包的时候,写入一些注册表信息。我首先是在注册表中找到迅雷的注册表,如下所示:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\thunder]
@="URL:迅雷专用链"
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""

[HKEY_CLASSES_ROOT\thunder\DefaultIcon]
@="D:\\xunlei\\Program\\Thunder.exe, 1"

[HKEY_CLASSES_ROOT\thunder\Shell]

[HKEY_CLASSES_ROOT\thunder\Shell\Open]

[HKEY_CLASSES_ROOT\thunder\Shell\Open\command]
@="\"D:\\xunlei\\Program\\ThunderNewTask.exe\" \"%1\""

这个注册表中跟我们要实现功能有关的就只有俩行,“URL Protocol”="“和
@=”“D:\xunlei\Program\ThunderNewTask.exe” “%1"”。根据我的理解第一个应该是让应用程序支持URL协议启动,第二个应该是一个带参数的命令行,用来从命令行启动程序的。所以要想实现这个功能,只需要在制作安装包时添加一个如下的注册表文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\name]
"URL Protocol"=""

[HKEY_CLASSES_ROOT\name\Shell]

[HKEY_CLASSES_ROOT\name\Shell\Open]

[HKEY_CLASSES_ROOT\name\Shell\Open\command]
@="[程序安装目录]yourprogram.exe %1"

这样就可以在浏览器启动了,如图所示:

本文标签: 应用程序 器中 如何在 Windows