• WPF 应用


    以下 F:/Debug/xx.exe 为客户端路径。

    1. Web 调用

    1.1 IE 内核的浏览器调用方式

    js 函数调用如下:
    var a=new ActiveXObject("Wscript.Shell");
    a.exec("F:/Debug/xx.exe params");(格式是:exe 应用程序+空格+入参)
    

    注意:使用如下的调用方式,需要将浏览器自定义安全设置→可以运行未安全认证的插件启用。

    1.2 使用 URL Protocol 方式调用

    1.2.1 创建注册表信息
    • 将以下内容复制到记事本,然后另保存为 bat 格式的文件,保存时编码类型选择 ANSI
      (防止注册表信息包含汉字时出现乱码).
    • 管理员权限执行保存后的 bat 文件.
    • (若执行过程出现拒绝访问,请进入注册表为当前用户添加完全控制权限,并重启电脑)。
    reg delete HKCRyunxing /f
    reg add HKCRyunxing /T reg_sz /d  "yunxing  Protocal" 
    reg add HKCRyunxing /v "URL Protocol" /t reg_sz /d ""
    reg add HKCRyunxingDefaultIcon /t reg_sz /d "F:Debugxx.exe"
    reg add HKCRyunxingshellopencommand /t reg_sz /d "F:Debugxx.exe "%%1""
    pause
    
    1.2.2 调用示例
    <a href="yunxing:params"> 点击 </a>
    

    href 里面的内容格式是:格式头(y
    unxing:)+入参,如:exe 应用程序+空格+高点名称+用户名+空格+用户密码。

    2. 客户端代码

    /// <summary>
    /// 启动方法
    /// </summary>
    /// <param name="e"></param>
    protected override void OnStartup(StartupEventArgs e)
    {
        if (e.Args != null && e.Args.Length >= 1)
        {
            string[] newargs;
            // 谷歌浏览器使用URL Protocol时会自己url编码并且只会传入一个参数,需要把:及:前的去掉然后以空格进行分割得到参数数组
            string inputArgStr = System.Web.HttpUtility.UrlDecode(e.Args[0].ToString());
            if (inputArgStr.Contains(":"))
            {
                newargs= inputArgStr.Split(':')[1].Split(' ');
            }
            else
            {
                newargs = e.Args;
            }
        }
    }
    
  • 相关阅读:
    使用header发送状态代码
    apache rewrite模块基础知识
    Deprecated: Function set_magic_quotes_runtime() is deprecated
    Xmind3.3强烈推荐
    windows 下安装svn服务
    Zend Studio 8
    mysql触发器
    程序员每天该做的事(转载)
    你真的了解.NET中的String吗?
    VS2005中Build顺序的设定
  • 原文地址:https://www.cnblogs.com/MichaelLoveSna/p/14486284.html
Copyright © 2020-2023  润新知