winform .exe程序打包修改注册表使其可通过网页触发启动并传入参数

本文介绍如何在网页中通过自定义URL Protocol启动本地的Winform应用程序,并传递参数。首先创建一个类库项目,编写修改注册表的代码,然后在安装程序中添加自定义操作,确保在安装和卸载时正确执行。安装完成后,网页可以使用特定链接启动应用,参数通过注册表节点传递。
摘要由CSDN通过智能技术生成

本篇主要实现的是在BS网页中使用a标签的href链接启动本地安装的CS应用程序(winform C#.exe程序),并能从网页传入参数到应用程序中。实现方式是利用自定义URL Protocol来调用应用程序,在winform程序安装完成后修改注册表,用注册表来启动应用程序。
网上也找了很多资料,主要结合了以下两位的技术分享
http://www.cnblogs.com/wang726zq/archive/2012/12/11/UrlProtocol.html
http://www.cnblogs.com/armyfai/p/5902482.html
下面我做了自己的整理:

winform程序的打包

winform的打包这里不展开,百度下很多。
1、首页创建一个类库项目,添加一个安装程序类,往里添加两个事件,然后往两个事件中编写修改注册表的代码

//安装完成后
this.AfterInstall += new InstallEventHandler(InstallerDemo_AfterInstall);
//卸载完成后
this.AfterUninstall += new InstallEventHandler(InstallerDemo_AfterUninstall);

如下图所示:
这里写图片描述

整体代码如下:

[RunInstaller(true)]
    public partial class InstallerDemo : System.Configuration.Install.Installer
    {
        public InstallerDemo()
        {
            InitializeComponent();
            this.AfterInstall += new InstallEventHandler(InstallerDemo_AfterInstall);
            this.AfterUninstall += new InstallEventHandler(InstallerDemo_AfterUninstall);
        }
        private string targetdirPath = "";
        /// <summary>
        /// 安装完成后触发
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void InstallerDemo_AfterInstall(object sender, InstallEventArgs e)
        {
            //throw new NotImplementedException();
            targetdirPath = this.Context.Parameters["targetdir"].TrimEnd('\\');//获取用户设定的安装目标路径, 注意,需要在Setup项目里面自定义操作的属性栏里面的CustomActionData添加上/targetdir="[TARGETDIR]\"
            Msg("注册表信息添加开始:");
            //Msg("安装路径:" + targetdirPath);
            Msg("文件路径:" + Path.Combine(targetdirPath, "mes_wf_test.exe"));
            var result= RegeditAdd("tpswftest", Path.Combine(targetdirPath, "mes_wf_test.exe"), "");
            Msg(&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值