通过浏览器打开某个应用程序

现在做了一个小程序,想要用户可以通过浏览器打开,最早见过通过ActiveX插件实现的,但是这个东西早已淘汰,而且安全性问题,即便IE浏览器支持,但是也不好使。

然后,发现人家QQ、腾讯会议这些的都可以直接浏览器打开,而且不限浏览器。

百度了下,确实可以。

于是赶紧搞起来,做个Test。

说起来道理很简单,注册表做好配置,浏览器就可以直接触发了。

注册表信息

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\MyAppProtocol]
@="MyAppProtocol Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\MyAppProtocol\shell]

[HKEY_CLASSES_ROOT\MyAppProtocol\shell\open]

[HKEY_CLASSES_ROOT\MyAppProtocol\shell\open\command]
@="D:\\Desktop\\Code\\MyApp\\bin\\Debug\\MyApp.exe %1"

txt文件另存为reg,直接双击运行,即可导入注册表。

html测试页面

<a onclick="window.open('MyAppProtocol://a=2,b=2')">Open MyApp</a>

这个时候双击,就可以打开自己的exe程序了。

exe程序代码

    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            //如果需要可以应用程序接收到url传参,注册表项在应用程序路径后增加 %1
            //设置其他参数也是不行的,必须是%1,且前面有个空格
            string[] xx = Environment.GetCommandLineArgs();
            string ss = string.Join("@", xx);

            //有个参数以后,就可以根据参数控制应用程序逻辑了

            Form1 form = new Form1();
            //传参给需要的页面
            form.Params = ss;

            Application.Run(form);
        }
    }

然后呢,我又想到人家腾讯会议,通过链接可以直接进入会议室,即可以传参。

参考我的html测试页面,气已经加上参数了,但是一开始不管用。

又找了几个案例,虽然没明说咋搞,但是看了下发现上面注册表配置略有不同。

重点来了:在应用程序路径后多了个 %1,就可以,注意前面有个空格

我试着把这个改为其他值,发现也不行,估计是固定的吧,标识可以接收参数。

Over,get到新东西,总会小开心一下。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值