博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WEB程序调用客户端程序
阅读量:5888 次
发布时间:2019-06-19

本文共 1774 字,大约阅读时间需要 5 分钟。

最近一个项目中要点击WEB页面上的链接启动自己编写的程序,而且还要接收参数,google了1.5小时,终于初步试验通过了。

尝试google了:web send message windows form, bs call cs program, custom protocol...多个关键字组合,发现这种技术叫

registered URL protocol,在这篇文章里介绍得比较详细:

 

1)首先写一个测试程序:

using System;using System.Collections.Generic;using System.Text;namespace Alert{  class Program  {    static string ProcessInput(string s)    {       // TODO Verify and validate the input        // string as appropriate for your application.       return s;    }    static void Main(string[] args)    {      Console.WriteLine("Alert.exe invoked with the following parameters.\r\n");      Console.WriteLine("Raw command-line: \n\t" + Environment.CommandLine);      Console.WriteLine("\n\nArguments:\n");      foreach (string s in args)      {        Console.WriteLine("\t" + ProcessInput(s));      }      Console.WriteLine("\nPress any key to continue...");      Console.ReadKey();    }  }}

我把程序编译成edss.exe

2)用notepad编辑一个文件,改名为edss.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\EDSS]

@="URL:EDSS Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\EDSS\DefaultIcon]

@="\"D:\\alert\\edss.exe\""

[HKEY_CLASSES_ROOT\EDSS\shell]

[HKEY_CLASSES_ROOT\EDSS\shell\open]

[HKEY_CLASSES_ROOT\EDSS\shell\open\command]

@="\"d:\\alert\\edss.exe\" \"%1\""

运行edss.reg后,总是提示有些注册表项写入不成功,折腾了半天,看了http等协议的定义,最后终于发现是360在干扰。

关闭360安全卫士,注册表终于写入成功了!

原来是360安全卫士阻止最后一个注册表项的写入:

[HKEY_CLASSES_ROOT\EDSS\shell\open\command]

@="\"d:\\alert\\edss.exe\" \"%1\""

3)在IE中输入edss://hello,ie浏览器弹击一个安全警告窗口,确认后就正常启动了我的应用程序

4)在chrome中试了一下不成功,后来发现在chrome中不能直接输入edss://hello来启动,必须写一个html页面。

马上编写了一行html页面:<a href='edss://hello'> start my windows program </a>

chrome也可以启动我的windows程序了!

其它浏览器以后再试。

本文转自博客园博文,原文链接:http://www.cnblogs.com/speeding/p/3764739.html,如需转载请自行联系原作者

http://www.cnblogs.com/speeding/ 

你可能感兴趣的文章
ftp匿名用户,虚拟用户,配置文件参数含义
查看>>
我的友情链接
查看>>
很多种QQ挂机方法
查看>>
mysql入门笔记1
查看>>
VM虚拟机添加硬盘
查看>>
常用单位解析、换算、线速转发
查看>>
Ex2010-09 Create a new Certificate
查看>>
vim命令学习总结
查看>>
线性表--单链表(C++)
查看>>
mysql 5.7.9 免安装版本
查看>>
【基础技术】Java基础那些事儿系列-成员变量与局部变量
查看>>
0726linux基础内容小记
查看>>
【加密工具】2019年网络安全加密工具排行,好用的计算机加密软件推荐
查看>>
练习题
查看>>
mysql中Timestamp,time,datetime 区别
查看>>
使用Python快速建立FTP服务器
查看>>
Python和Cython有什么关系?
查看>>
bind安装域名解析服务,以及分离服务
查看>>
Netfilter/Iptables Layer7 应用层过滤策略部署
查看>>
12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_b
查看>>