通过网页调起客户端程序

果冻栋吖原创内容:未经允许禁止转载~

怎么像百度云那样通过网页调起客户端程序?

先说下我的经历,愚蠢的我直接同C#CS程序调起本地程序的方法,写在了网页上,显然,这样是不对的,这样调起的是服务器的程序,并不是客户端程序。

那么,具体是怎么操作的呢?

代码有很多不足之处,肯定会有更好的办法,如果您有什么建议,请联系我QQ:1772829123或者评论。请各位大佬不吝赐教!

网页的代码挺简单,

MyApp: 是要调起的程序,需要加注册表信息
aadmin,123321是传递的参数,实际是用字符串传递过去的,程序打开后接收的参数是“MyApp:aadmin,123321”。这个我不知道怎么处理,直接数组方式传递,如果道友知道,希望指导一下!

主要是修改注册表的信息。

<input type="button" value="打开我的应用" onclick="openMyApp()"/>
<script>
  function openMyApp(){
     window.location.href=‘MyApp:aadmin,123321‘;
  }
</script>

注册表修改需要一个文件,来增加程序的注册表信息,不然没法调起。这里写了一个增加的,一个删除的。

增加的:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\MyApp]
@="MyApp"
"URL Protocol"="你的软件路径"

[HKEY_CLASSES_ROOT\MyApp\DefaultIcon]
@="你的软件路径,1"

[HKEY_CLASSES_ROOT\MyApp\shell]

[HKEY_CLASSES_ROOT\MyApp\shell\open]

[HKEY_CLASSES_ROOT\MyApp\shell\open\command]
@="\"软件路径\" \"%1\""

删除的:

Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\MyApp]

这样,就修改好注册表信息了,不过实际程序不存在是调用不起来的哦

程序的代码是这样的:

首先要修改应用程序的主入口点,也就是Program.cs

        static void Main(string[] args)
        {

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            string str = string.Empty;
            if (args.Length > 0)
            {
                str = args[0].ToString();
                Application.Run(new Form1(str));
            }
            Application.Run(new Form1());
        }

通过接收参数来取得网页传递过来的值。

重载Form1的构造函数

public partial class Form1 : Form
    {
        public string userName = string.Empty;
        public string userPwd = string.Empty;
        public Form1()
        {
            InitializeComponent();
        }

        public Form1(string str)
        {
            str = str.Replace("myapp:", "");
            string[] args = str.Split(‘,‘);
            if (args.Length>=2)
            {
                userName = args[0].ToString();
                userPwd = args[1].ToString();
            }
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.txtUserName.Text = userName;
            this.txtUserPwd.Text = userPwd;
        }
    }

这里注意下,当参数传递过来的时候MyApp会全部变为小写~

最后,看一下运行效果:

选择打开,就会看到用户名和密码自动填写上了,只是测试,界面细节请忽略~

时间: 2024-10-12 20:22:45

通过网页调起客户端程序的相关文章

asp.net网页调用客户端程序

================================第一步:网注册表中(HKEY_CLASSES_ROOT)添加项 ================================第二步:在网页上写上标签调用 <a href="xishui://hello">zhangdi://hello</a> ================================显示效果:会弹出hello asp.net网页调用客户端程序,布布扣,bubuko.com

吉特仓库管理系统(开源)-如何在网页端启动WinForm 程序

原文:吉特仓库管理系统(开源)-如何在网页端启动WinForm 程序 在逛淘宝或者使用QQ相关的产品的时候,比如淘宝我要联系店家点击旺旺图标的时候能够自动启动阿里旺旺进行聊天.之前很奇怪为什么网页端能够自动启动客户端程序,最近在开发吉特仓储管理系统的时候也遇到一个类似的问题,因为使用网页端的打印效果并不是太好,之前也写过关于打印相关的文章可以查阅,我需要使用WinForm客户端来驱动打印,但是我又不想重新开发Winform客户端的所有功能,只要能够使用winform驱动打印即可.我就需要一个类似

使用iframe从网页调起移动端应用

比如想在网页中调起支付宝,我们可以创建一个iframe,src为: alipayqr://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode={支付二维码扫描的url} 浏览器接收到这个url请求发现未知协议,会交给系统处理,系统就能调起支付宝客户端了.我们还能趁机检查一下用户是否安装客户端:给iframe设置一个3-5秒的css3的transition过渡动画,然后监听动画完成事件,如果用户安装了客户端,那

在网页如何调用客户端的可执行文件

最近,群里在讨论如何从网页中打开一个exe文件.在群里面说了下思路,但总说不清楚,答应写一篇文章出来.这几天事情挺多,一直没时间写,让阿超同学久等了. 基于浏览器的应用,表现力始终不够丰富,我们常常会想,在一个网页中,点一下某个链接,能够直接调用安装好的可执行程序有多好啊.按照微软的推荐,应该是通过ActiveX,把可执行程序嵌入到网页中,例如flash的ActiveX.这样,我们就要购买ActiveX的签名,不通过签名的东西,在IE6中是无法加载的,为一个小项目购买ActiveX的签名,代价太

CRM 客户端程序开发:根据主键使用OData获取记录的值

根据官方的建议,在表单界面使用OData终结点最好使用REST版本,而不是jQuery版本,所以我这个示例是按照官方的建议来做的. 因为我的JavaScript水平不怎么高,我就直接利用SDK里面的示例辅助JavaScript类库吧.这个类库的位置在 SDK\SampleCode\JS\RESTEndpoint\JavaScriptRESTDataOperations \JavaScriptRESTDataOperations\Scripts. 我将这个文件夹下面的 SDK.REST.js 和

简单的客户端程序

今天, 我在写控制小车的上位机程序, 要发送指令给小车的wifi模块,  所以我需要编写客户端程序, 因为wifi模块已配置成了服务器. 客户端要连接服务器, 需要知道服务器的IP地址, 不是它的IPV4的地址, 而是它的默认路由IP, 然后是指定端口号.   IP确定同一网络下的主机位置, 端口号确定主机上我要通信的进程. 知道了关键部分(原理),接下来就是怎么编程了. *****************************************  图解 ****************

Excel服务器待办事宜提醒客户端程序 [2014.03.19 日更新]

软件可以免费使用,作者仅保留一个版权声明于待办事宜提醒的状态栏处. 适用版本:Excel服务器9.2版及以上版本均支持. 欢迎大家提意见!联系QQ:303629685[Excel服务器待办事宜提醒客户端程序 20140113更新]        1.修复查询语句的小错误.        2.服务器端设置后,自动带出已设置的服务器端除密码外的相关信息.        3.客户端提醒设置后,自动带出已设置的客户端除密码外的相关信息.[Excel服务器待办事宜提醒客户端程序 20140109更新] 

通过私有协议在Chrome浏览器网页中打开本地程序

最近甲方有这样一个需求:两套系统,一套基于Chrome开发,一套基于IE开发,想要在Chrome中增加一个链接,然后进入IE开发的系统.也就是说,想要在Chrome中创建链接跳转到IE浏览器指定页面,还要实现跳转动画效果.这个需求我们先来解决从Chrome跳转到IE的问题. 问题分析:从Chrome中跳转到IE,直接以http链接形式是不可能跳转到IE的,只能通过单独开发的本地程序打开IE,问题是如何让Chrome打开该程序.有一种方法可以实现:通过注册私有协议,用户点击链接的时候直接使用私有协

c++下基于windows socket的单线程服务器客户端程序

今天自己用编写了一个简单的c++服务器客户端程序,注释较详细,在此做个笔记. windows下socket编程的主要流程可概括如下:初始化ws2_32.dll动态库-->创建套接字-->绑定地址信息-->服务器进行监听/客户端连接服务器-->数据交换-->关闭套接字对象. 服务器端: 1 #include <Winsock2.h> 2 #include <Ws2tcpip.h> 3 #include <iostream> 4 5 #prag