示例:应用VS打包带有系统右键菜单的安装包

一、目的:演示如何应用VS打包应用程序成系统右键菜单,当点击系统右键菜单时可以自动调用当前程序

(类似于SVN右键菜单进行Commit、Update、上传到百度云、添加至压缩包等菜单操作)

 

二、环境:VS2019

 

三、示例:在系统右键菜单中增加一个菜单项”我的方式打开“,当点击”我的方式打开“时,调用exe接收当前选择的文件进行判断是否立即打开;

说明:

1、在安装包前,点击文件右键没有”我的方式打开“菜单按钮

2、运行安装包后,点击右键菜单,出现了”我的方式打开按钮“

3、当点击该按钮时,会弹出应用程序写好的逻辑对话框,提示是否用当前默认程序打开

应用程序中代码如下: 

    public partial class App : System.Windows.Application
    {

        protected override void OnStartup(StartupEventArgs e)
        {

            if (e.Args != null && e.Args.Count() > 0)
            {
                foreach (var item in e.Args)
                {
                    var result = MessageBox.Show(item, "是否用默认程序打开?", MessageBoxButton.YesNo, MessageBoxImage.Question);

                    if (result == MessageBoxResult.Yes)
                    {
                        Process.Start(item);
                    }
                }
            }
            else
            {
                MessageBox.Show("没有识别到任何参数!");

                this.Shutdown();
            }
            base.OnStartup(e);
        }

    }

四、步骤:

1、新建应用程序,设置代码如上图

2、新建打包程序  

右键解决方案 - 添加  - 新建项目 -Setup Project

注:如果没有Setup Project项目,请先安装VS2019打包项目,这里不做介绍

3、添加注册表配置,如下图添加注册表

说明:右键点击打包项目 - View - 注册表

 

4、添加到系统右键注册表,如下图

说明:右键注册表目录为,HKEY_CLASSES_ROOT\*\shell

没有该目录按该目录建立即可,之后在该目录下创建”我的方式打开“(右键菜单显示的名称),再创建command目录,添加字符串值,Value值如下:

[ProgramFilesFolder][Manufacturer]\[ProductName]\HeBianGu.Package.Application.RegistryRightMenu.exe %1

这个目录表示当前安装的文件exe生成的位置,右键菜单中此值表示当点击右键默认打开的exe路径,而参数%1即表示当前右键选中的文件名全路径,只需要再应用程序中接受这个参数即可,接受参数方式如下:

        protected override void OnStartup(StartupEventArgs e)
        {

            if (e.Args != null && e.Args.Count() > 0)
            {
                foreach (var item in e.Args)
                {
                    var result = MessageBox.Show(item, "是否用默认程序打开?", MessageBoxButton.YesNo, MessageBoxImage.Question);

                    if (result == MessageBoxResult.Yes)
                    {
                        Process.Start(item);
                    }
                }
            }
            else
            {
                MessageBox.Show("没有识别到任何参数!");

                this.Shutdown();
            }
            base.OnStartup(e);
        }

 

通过以上4个步骤即可配置好打包带有右键的菜单项,同时点击该项调用当前打包的应用程序,通过此方式可以构造类似于”上传到百度云、360强力删除、添加到压缩包、SVN提交“等等功能,同时卸载后该注册表项也会自动卸载

(其他子菜单、菜单图标等功能的时间后续更新)

 

 

 

 

源代码:https://github.com/HeBianGu/Package-Demo.git

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值