web调用本地exe应用

1.效果

2.代码修改注册表

 
public static void open_url_startup(string nodeName="mumu.myApp",string exeName= "my-app-path")
        {
            try
            {
                string basepath = AppDomain.CurrentDomain.BaseDirectory;
                
               
                string programFullPath = string.Format("{0}{1}", basepath, exeName);

                RegistryKey rkey = Registry.ClassesRoot;
                //string a = (string)key.GetValue(nodeName, true);
                if (!rkey.Name.Contains(nodeName))
                {
                    RegistryKey software = rkey.CreateSubKey(nodeName);
                    software.SetValue("URL Protocol", programFullPath);
                    software.SetValue("", $"mumu.Protocol");

                    RegistryKey softwareDefaultIcon = software.CreateSubKey("DefaultIcon");
                    softwareDefaultIcon.SetValue("", string.Format("{0}.exe,L", programFullPath));

                    RegistryKey softwareShell = software.CreateSubKey("shell");
                    softwareShell = softwareShell.CreateSubKey("open");
                    softwareShell = softwareShell.CreateSubKey("command");
                    softwareShell.SetValue("", string.Format("\"{0}.exe\" \"%L\"", programFullPath));

                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
        }

3.注册表的效果

4.html里访问那个刚刚写入节点的名称mumu.myApp

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<a href="mumu.myApp:这里是你的参数">MyApp</a>

</body>
</html>

exe里要在main里接收参数

注意

  1. exe接收的参数要用web的url解码方法才能解析出正确的数据,否则会乱码

  2. 节点名称不能有下划线,可以有点,不能包含字符和中文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值