Web打开本地exe程序并且可以传递参数流程

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值