场景

JS中调用本地exe程序:

JS中调用本地exe程序_BADAO_LIUMANG_QIZHI的博客-CSDN博客

在上面的基础上怎样在js中调用本地winform程序并且传递参数。

注:

博客:
BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客-C#,架构之路,SpringBoot领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、新建或者修改上面的myprotocol.reg注册表文件,在shell\open\command下的

exe路径中添加参数占位符%1

[HKEY_CLASSES_ROOT\myprotocol\shell\open\command]
@="\"D:\\test\\UrlProcotolDemo.exe\"%1"

完整.reg文件

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\myprotocol]
@="myprotocol Protocol"
"URL Protocol"=""[HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]
@="D:\\test\\UrlProcotolDemo.exe"[HKEY_CLASSES_ROOT\myprotocol\shell]
@=""[HKEY_CLASSES_ROOT\myprotocol\shell\open]
@=""[HKEY_CLASSES_ROOT\myprotocol\shell\open\command]
@="\"D:\\test\\UrlProcotolDemo.exe\"%1"

然后双击运行该reg文件,重新注册注册表。

2、新建winform程序,页面添加一个label

主窗体中添加Public变量,用来接收传递的参数,并在窗体load方法中将变量赋值给label

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace UrlProcotolDemo
{public partial class Form1 : Form{public String canshu = String.Empty;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){label1.Text = canshu;}}
}

修改Program.cs,Main方法中添加参数,并判断参数不为空时解析参数

        static void Main(string[] args){String canshu = "参数为空";if (args.Length>0) {canshu = Regex.Match(args[0],@"(?<=://).+?(?=:|/|\Z)").Value; ;}Console.WriteLine("canshu----"+canshu);Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Form1 form1 = new Form1();form1.Text = canshu;form1.canshu = canshu;Application.Run(form1);}

3、编译生成winfrom的exe项目,将其放在上面注册表文件对应的路径下

4、新建或者修改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="myprotocol://badao">执行可执行文件</a>
</div>
</body>
</html>​

在调用时传递参数badao

JS中调用本地Winform程序并传递参数相关推荐

  1. CDR插件开发之CPG插件018 - 在CPG插件中调用外部EXE程序并传递参数

    在上篇文章中,讲解了CPG插件在VS2019中实现调试的具体方法.本文以具体代码为例,讲解在CPG插件中调用外部EXE程序,并传递运行参数的方法. 工程搭建准备 按照惯例,本篇文章的序号为018,请直 ...

  2. JS中调用本地exe程序

    场景 在网页中通过js调用Windows上本地的exe程序, 比如在浏览器中点击调用某播放器的exe程序. url protocol 的方式来实现.用这种方式实现,任何浏览器都兼容, 不会存在只有IE ...

  3. 【方法】HTML网页调用本地Python程序

    欢迎支持个人chatgpt:https://chat.immuseai.com/register?promotion-code=pRE9p9DXCOBz3Z1s.注册即可使用GPT3.5和4.0. 代 ...

  4. 在网页中调用本地的应用程序

    在网页中调用本地的应用程序 例子: <script> function exec (command) {     window.oldOnError = window.onerror;   ...

  5. 浏览器调用本地应用程序

    第一次遇到这个问题是比较蒙的,后来查找资料后逐渐有了思路: IE 浏览器可以使用 ActiveX控件,但会有风险(我并未去验证). 使用URL ,通过将URL协议添加到注册表的方法(我打算采用这种方法 ...

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

    好久没跟新博客了,今天跟新2019年的第一篇博客,最近在做项目,需求就是Web页面调用本地客户端程序并传参,传参是为了避免客户端再次输入账号密码,直接跳过登录. 翻了不少资料,总的来说好像都要操作注册 ...

  7. 网页Web上调用本地应用程序(.exe)

     一.web调用本地应用程序的思路 这个方法主要思路是利用自定义URL Protocol来调用应用程序.浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序 ...

  8. AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 wps office, excel ppt

    AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 office   更多主页   下载地址   ​​​​​​​ 能在以及几乎所有支持websock浏览器,包括chro ...

  9. SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

    1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller; import java. ...

最新文章

  1. 可持久化普通线段树 ---- P2839 [国家集训队]middle 可持久化普通线段树 + 二分 求中位数最大值
  2. 双十一:透支消费?累积消费?促进消费?
  3. linux c不占用cpu的延时,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  4. 带你进入高级测试实验室,
  5. python好多模块和c相识_Python-Cext名称空间与常规Python子模块混合?
  6. [Linux实用工具]Ubuntu环境下SSH的安装及使用
  7. 离散事件模拟在游戏中的应用
  8. sql操作mysql数据库_一些常用的操作MySQL数据库的sql语句
  9. [bzoj 4774]修路
  10. 图书管理系统(课程设计)
  11. xshell 配置公钥 免密码登陆
  12. HTML+css网站设计布局模板
  13. spark快速入门java_Spark 快速入门
  14. vue实现点击复制文本功能
  15. 计算机如何重新连接打印机,电脑重装系统后怎么连接打印机
  16. 所谓领导力,指的是这21种能力
  17. crm day03 创建市场活动
  18. rabbitMq系列2:AMPQ协议与RabbitMQ执行过程
  19. 十年架构师留下最完整的Java学习路线
  20. 关于解决Carsim2016找不Liscens问题的原生BIA法

热门文章

  1. Future和CompletableFuture的区别和对比,以及Future主要的四个缺点——不能回调会阻塞、批量任务处理彼此依赖会阻塞、不能多个任务级联执行、得不到最先完成的任务
  2. MySQL使用GROUP_CONCAT分组拼接
  3. c语言4x4矩形转置,最快的转置4x4字节矩阵的方法。
  4. tomcat server.xml文件的配置解析
  5. 又到了上云时刻啦!!!阿里云 Docker部署SpringBoot项目 方便测试的部署方式
  6. php 数组导出csv_php导出CSV抽象类实例
  7. mysql数据回滚占用id吗_mysqlbing 回滚数据问题
  8. python填充空值_Python机器学习(九十一)Pandas 填充(Imputation)空值
  9. QT判断操作系统版本
  10. yum php devel_yum源里找不到 php54w-devel,求可用yum源