Web打开本地exe程序都是通过打开exe对应的注册表方式
1、unity打包出来的exe程序是绿色的不需要安装,可以通过.reg或者.bat文件写编写注册表,这种方式需要用户额外点击.reg或者.bat文件
2、unity代码填写注册表,这种方式需要用户运行exe后注册表才能注册
3、将Exe通过Inno Setup制作成安装包,将注册表的字段添加在生成.iss文件,这样用户在安装exe的安装包后,注册表会自动注册,故采用这种方案
一、安装Inno Setup程序
二、通过Inno Setup将exe制作成安装包
参考:https://jingyan.baidu.com/article/36d6ed1f50ecfc1bcf4883aa.html
这一步的主要目的是获得Inno Setup 打包产生的.iss打包脚本(只需要第一次操作,有了.iss后,就直接通过.iss这个脚本打包)
三、获得.iss打包脚本后,改造这个.iss文件
1、右击第一制作的.iss文件,通过Inno Setup打开
在最下面添加如下代码(ctp可以自定义,但是不支持中文):
[Registry]
Root: HKCR; Subkey: "ctp"; ValueType: "string"; ValueData: "URL:Custom Protocol"; Flags: uninsdeletekey
Root: HKCR; Subkey: "ctp"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
Root: HKCR; Subkey: "ctp\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},0"
Root: HKCR; Subkey: "ctp\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
如图:
2、点击编辑,就会从新制作安装包
3、点击安装包,安装后就会自动注册一个ctp注册表
(1)查看注册表方式 win+r 然后输入 regedit指令
(2)注册表如图:
4、web端
(1)可以直接通过浏览输入ctp://123其中123为web端向三维传的参数
(2)编写html代码如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div>
<a href="ctp://234">
open exe
</a>
</div>
</body>
5、Unity端(代码接受web的参数方法)
//参数例如: testapp://test_args
//参数以在注册表中写入的名字+://开头
string arg = Environment.GetCommandLineArgs()[1];
//该参数是经过Url转义的,需要变成非转义形式才能使用
string usableUrg = Uri.UnescapeDataString(arg);
链接:https://pan.baidu.com/s/1WLES9dTtlwjqCVWAnHwApQ
提取码:sw12