无需MSIX安装程序,如何为网站应用注册指定URI链接处理?
无需MSIX,通过InnoSetup注册应用处理指定HTTPS链接的方法
完全可以不用MSIX,通过InnoSetup打包exe安装程序时添加注册表项,就能让你的应用处理来自https://myapp.com/开头的链接,兼容老旧系统和域策略受限的环境。核心是利用Windows原生的URL协议关联机制,针对特定主机注册处理规则。
具体实现步骤
编写InnoSetup注册表配置
在你的InnoSetup脚本中添加[Registry]段,注册特定主机的HTTPS链接处理规则:[Registry] ; 注册myapp.com的HTTPS链接标识(当前用户范围,无需管理员权限) Root: HKCU; Subkey: "Software\Classes\https\myapp.com"; ValueType: string; ValueName: ""; ValueData: "URL:MyApp HTTPS Handler"; Flags: uninsdeletekey Root: HKCU; Subkey: "Software\Classes\https\myapp.com"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue ; 设置点击链接时启动的应用路径,%1会传递完整的链接地址 Root: HKCU; Subkey: "Software\Classes\https\myapp.com\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\YourApp.exe"" ""%1"""; Flags: uninsdeletekey关键参数说明
- 用
HKCU(当前用户注册表根)无需管理员权限,适合域内受限电脑;若要全局生效所有用户,可替换为HKLM,但安装时需要管理员权限。 {app}是InnoSetup的内置变量,代表应用安装目录;YourApp.exe替换为你的实际应用文件名。Flags: uninsdeletekey确保卸载时自动删除对应的注册表项,避免残留。
- 用
应用适配要求
你的应用需要支持解析命令行参数——也就是接收安装程序传递的完整URL(即%1对应的内容),然后做后续的业务处理。生效与测试
安装完成后,重启浏览器或触发系统协议关联刷新(可在InnoSetup脚本中添加代码调用AssocNotifyShellChange函数),之后点击https://myapp.com/xxx格式的链接,系统就会自动启动你的应用并传递链接地址。
这个方法完全依赖Windows原生机制,不依赖MSIX,兼容Windows 7及以上所有版本,能满足老旧电脑和域策略受限环境的需求。
内容的提问来源于stack exchange,提问作者Alberto
相关产品推荐
相关产品推荐

