首页 > Web开发 > 详细

通过网页调起客户端程序

时间:2017-08-17 12:15:11      阅读:293      评论:0      收藏:0      [点我收藏+]

 

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

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

先说下我的经历,愚蠢的我直接同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会全部变为小写~

最后,看一下运行效果:

技术分享

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

技术分享

 

通过网页调起客户端程序

原文:http://www.cnblogs.com/jellydong/p/7380522.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!