Web页面调用本地客户端程序并传参

好久没跟新博客了,今天跟新2019年的第一篇博客,最近在做项目,需求就是Web页面调用本地客户端程序并传参,传参是为了避免客户端再次输入账号密码,直接跳过登录。


翻了不少资料,总的来说好像都要操作注册表调用客户端以及传参。

1.写了一个简单的WPF的Demo来接收参数,当接收到参数时弹出消息框。(只要是客户端应该都有个主入口来接收参数的

 public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            if (e.Args.Length > 0)
            {
                var window = new WPFDemo();
                window.ShowEx(e.Args[0]);
            }
        }
    }
        /// <summary>
        /// 获取启动参数
        /// </summary>
        /// <param name="args"></param>
        public void ShowEx(string args)
        {
            MessageBox.Show(args);
        }

2.往注册表写入信息,客户端文件路径以及参数占位符(个人理解)。

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WPFDemo]
@=""
"URL Protocol"=""
[HKEY_CLASSES_ROOT\WPFDemo\DefaultIcon]
@=C:\\Users\\Administrator\\Desktop\\新建文件夹\\WpfApp1.exe,1"
[HKEY_CLASSES_ROOT\WPFDemo\shell]
@=""
[HKEY_CLASSES_ROOT\WPFDemo\shell\open]
@=""
[HKEY_CLASSES_ROOT\WPFDemo\shell\open\command]
@="\"C:\\Users\\Administrator\\Desktop\\新建文件夹\\WpfApp1.exe\" \"%1\""

绿色的是注册表中的项值,红色的是你要调用的客户端路径,注意双斜扛%1应该代表的是你要传的参。

新建个txt文本,把以上文本复制进去保存。跟改下txt后缀名为reg,双击运行即可注册进注册表。

然后win+R,输入regedit,打开注册表。检查注册成功了没,如下图注册成功。

3.建个web页面测试下。WPFDemo要写你注册表中注册的项值,后面写传递给客户端的参数

<!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="WPFDemo://admin,123456">
           open exe
            </a>
        </div>
    </body>
</html>

4.运行html,测试下是否成功。客户端弹出所传参数,说明接收成功了。到此web端调用本地客户端程序传参完成,后续客户端接收参数跳过登录也好,做其它操作也好都行了。


好久没写博客了,正好项目需要研究这个问题,记录下来,以便以后自己遇到相同问题有个参照,当然能帮助到其他人就更好了。代码学习感觉是个长期积累的过程,不能松懈。

  • 0
    点赞
  • 0
    评论
  • 14
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

飘逸小强哥

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值