Windows 右键菜单扩展容器 [开源]

这篇具有很好参考价值的文章主要介绍了Windows 右键菜单扩展容器 [开源]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下:

右键菜单扩展,微软产品速递,微软,excel,microsoft

如上图,右键菜单多了几个我自定义的菜单:

  • 复制文件路径

  • 复制文件夹路径

  • 我的工具箱 <走配置文件动态创建子菜单,下面会讲>

我上图是在 win10 操作系统下演示的,在 win11 系统也测试可用。

源码和工具包已经开源在 github

  • https://github.com/yuzd/WindowsExplorerExtensions

右键菜单扩展,微软产品速递,微软,excel,microsoft

微软MVP实验室研究员

右键菜单扩展,微软产品速递,微软,excel,microsoft

俞正东

微软最有价值专家(MVP),.NET 技术专家,热爱开源,关注并喜欢研究前沿技术,热衷于技术和经验分享,长期撰写技术博客,活跃于开源社区。

如何安装

软件包下载后,解压后:

右键菜单扩展,微软产品速递,微软,excel,microsoft

  • windows-explorer-ext 目录是安装扩展文件用的

  • 30594988.csv 是测试 csv 转 excel 的 demo 文件

  • csv2xlsx.exe 是我开发的一个 netcore 独立打包的 csv 转 excel 的执行文件

csv2xlsx 的源码地址: 

  • https://github.com/yuzd/Exporter/tree/master/ConsoleApp

是基于我开源的各种类型转化封装库,比如 csv,xlsx,json,list 相互转化。

开源地址:

  • https://github.com/yuzd/Exporter

有人可能会问 ,如果电脑安装了 office 的话,直接 csv 就可以打开为 excel 啊, 但是默认的双击 csv 以 excel 方式打开,对于是大数字会显示成下面这样。

右键菜单扩展,微软产品速递,微软,excel,microsoft

所以我想要让 csv 的内容全部以字符串类型展示(就是上面 csv3xlsx 的功能了)

右键菜单扩展,微软产品速递,微软,excel,microsoft

开始安装

进入解压后的 windows-explorer-ext 目录

右键菜单扩展,微软产品速递,微软,excel,microsoft

  • ServerManager.exe 安装扩展用的

  • menu.txt 动态菜单配置文件

  • WindowsExplorerExtentions.dll 扩展逻辑封装

▍首先打开 ServerManager.exe

这个工具你也可以从官方地址下载:

  • https://github.com/dwmkerr/sharpshell/releases

右键菜单扩展,微软产品速递,微软,excel,microsoft

打开 ServerManager.exe 点击 Load Server 

右键菜单扩展,微软产品速递,微软,excel,microsoft

然后选中当前目录的 WindowsExplorerExtentions.dll

右键菜单扩展,微软产品速递,微软,excel,microsoft

选中第一个然后点击 Install 安装扩展

右键菜单扩展,微软产品速递,微软,excel,microsoft

出现如下提示代表安装成功

右键菜单扩展,微软产品速递,微软,excel,microsoft

此时,复制文件地址和复制文件夹地址这2个扩展菜单已经可用了

右键菜单扩展,微软产品速递,微软,excel,microsoft

<我的工具箱>是动态创建二级子菜单的容器,需要配置下文件

▍打开 menu.txt 配置文件

总共要配置4个东西(按照-_-隔开)

  • [1] 针对什么后缀的文件进行 比如 .csv 代表只针对 csv 文件才会创建该菜单

  • [2] 菜单名称

  • [3] 这个菜单功能对应的可执行文件 这个根据功能自己开发了

  • [4] 传给上面可执行文件的参数 {path} 会动态替换为选择的文件地址全路径

注意,针对[1] 有2个特殊约定

如果配置 * 那么选择文件或者文件夹都会出现该菜单

*-_-测试-_-E:\xxxxx\xxxx.exe-_-"{path}"

如果配置 folder 那么只会选择文件夹才会出现该菜单

folder-_-测试-_-E:\xxxxx\xxxx.exe-_-"{path}"

这样一来的话,如果我后面想要动态创建菜单,只需要开发这个菜单功能的可执行文件,然后再 menu.txt 新增个配置就搞定了,是不是很方便。

上面说到下载包有个 csv2xlsx.exe 文件,下面我们配置下动态新增一个二级子菜单<转成excel> 只针对csv文件有效。

menu.txt 配置如下:

.csv-_-转成excel-_-E:\Tool\windows-extention\csv2xlsx.exe-_-"{path}"

我们这么配置下:

右键菜单扩展,微软产品速递,微软,excel,microsoft

配置好后,在 csv 类型文件点击右键,就可以看到效果了。

右键菜单扩展,微软产品速递,微软,excel,microsoft

点击该菜单,会启动一个 cmd 窗口,注意,在非 csv 的文件是不会有这个菜单的,这个是根据配置来的。

右键菜单扩展,微软产品速递,微软,excel,microsoft

其实就是将选中的文件路径传给你配置的可执行文件去执行。

源码说明

打开 vs 创建一个空的 solution,新增一个新的 Class Library 工程(目标是 framework)。

引入 ShapShell 包:

右键菜单扩展,微软产品速递,微软,excel,microsoft

右键菜单扩展,微软产品速递,微软,excel,microsoft

示例代码​​​​​​​


    [ComVisible(true)]//这个很关键
    [COMServerAssociation(AssociationType.AllFiles)] //这个代表针对文件类型才有效
    //[COMServerAssociation(AssociationType.AllFilesAndFolders)]这个代表针对全部类型有效,包括文件夹
    public class CopyFileLocationExt : SharpContextMenu
    {

        protected override bool CanShowMenu()
        {

            return true;
        }


        protected override ContextMenuStrip CreateMenu()
        {
            try
            {
                var contextMenu = new ContextMenuStrip();
                var menuItem = new ToolStripMenuItem("复制文件路径");
                menuItem.Image = Resources.AppStrings.Duplicate3;
                menuItem.Click += (sender, args) =>
                {
                    var file = SelectedItemPaths.First();
                    Clipboard.SetText(file);
                };
                contextMenu.Items.Add(menuItem);

                //  Return the menu.
                return contextMenu;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace);
                return null;
            }
        }

    }

主要依赖 ShapShell,创建 SharpContextMenu 的实现类,重写关键的 CanShowMenu 和 CreateMenu 的方法,注意 [ComVisible(true)] 不能漏。

▍如何调试

右键菜单扩展,微软产品速递,微软,excel,microsoft

右键菜单扩展,微软产品速递,微软,excel,microsoft

用 ServerManager.exe 注册进去后,菜单点击的时候会进入断点。

右键菜单扩展,微软产品速递,微软,excel,microsoft文章来源地址https://www.toymoban.com/news/detail-781926.html

到了这里,关于Windows 右键菜单扩展容器 [开源]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 Windows 右键菜单添加 Git Bash

    在日常开发过程中,我们经常需要使用 Git Bash 进行版本控制操作。然而,每次都需要打开 Git Bash,然后导航到我们的工作目录,这无疑增加了我们的工作负担。那么有没有一种方法可以让我们直接在目录中打开 Git Bash 呢?答案是肯定的。在本文中,我将向你展示如何将 Git

    2024年04月25日
    浏览(57)
  • Windows如何自定义右键新建菜单栏

    右键新建菜单的实现原理 参考文章 修改 win10 右键“新建”菜单(原理、两种方法及注意事项)_goocheez的博客-CSDN博客_右键新建菜单 默认情况下,win10 会在用户 每次单击右键后 ,系统弹出“新建”菜单之前,从注册表 计算机HKEY_CLASSES_ROOT 中的各个后缀中提取 ShellNew 分支,

    2024年02月06日
    浏览(41)
  • Windows注册表开机自启,右键菜单,运行的位置介绍

    开机自启可以把可执行文件的快捷方式放到StartUp目录中,也可以在注册表中实现,大多数都是在勾选设置后修改注册表中的值,这个注册表项的名称如下: 他的字符串值由名称和数据组成,名称就是app的名自定义,数据的值是可执行文件的绝对路径。 在打开运行时如果运行

    2024年02月04日
    浏览(48)
  • Windows11桌面右键菜单恢复为win10操作方法_win11修改邮件菜单

    输入下面的命令 重启之后右键菜单,恢复为win10样式。 恢复Win11新右键菜单的方法

    2024年02月11日
    浏览(62)
  • 推荐一个基于.Net Framework开发的Windows右键菜单管理工具

    平常在我们电脑,我们都会安装非常多的软件,很多软件默认都会向系统注册右键菜单功能,这样方便我们快捷打开。比如图片文件,通过右键的方式,快捷选择PS软件打开。 如果我们电脑安装非常多的软件,就会导致我们右键菜单的列表非常多,但是很多软件我们是用不到

    2024年02月02日
    浏览(82)
  • 恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题

    在 Windows 11 中,微软引入了大量的新视觉变化,以及对经典的 Windows 10 右键菜单进行了改造。不过,这个新右键菜单可能让一些用户感到陌生,因为它隐藏了大部分选项,只在一个名为“显示更多选项”的子菜单中提供更多功能。这一改变虽然让菜单看起来更美观,但可能不

    2024年02月07日
    浏览(64)
  • windows11 隐藏右键菜单中的显卡amd配置(2023 真实有效)

    win11 最新的AMD显卡驱动,右键菜单就多出AMD software:adrenalin edition。尝试了很多分方法都不能去除,找到一种真实有效的方法。 解决办法: 1.用快捷键 Win+R 打开命令行工具,输入 regedit 打开注册表 2.按照 HKEY_CLASSES_ROOT PackagedComPackage AdvancedMicroDevicesInc-2.AMDRadeonSoftware_10.22.2

    2024年02月11日
    浏览(113)
  • windows系统如何将 CMD(命令提示符)添加到鼠标右键菜单

    您可以通过以下步骤将 CMD(命令提示符)添加到鼠标右键菜单: 1. 打开注册表编辑器。按下 `Win + R` 组合键,然后键入 `regedit` 并按下 Enter 键。 2. 导航到注册表路径:`HKEY_CLASSES_ROOTDirectoryBackgroundshell`    这将打开一个名为 \\\"shell\\\" 的键。 3. 在 \\\"shell\\\" 键下,右键单击,选择

    2024年02月03日
    浏览(88)
  • 【win11】Windows 11 恢复经典文件资源管理器及右键菜单

    转载大神的文章

    2024年02月13日
    浏览(63)
  • VScode 右键菜单加入使用用VSCode打开文件和文件夹【Windows】

    鼠标右击文件或者文件夹,可直接用VSCode打开,非常方便。但如果我们在安装VSCode的时候没有勾选这2个选项,那就享受不到这个便捷的功能了,那么怎么办呢? 此时存在2种方法进行修复: 重装软件 在安装的过程中勾选上这2个选项即可(肯定我们不愿意,很多配置和插件都用

    2024年02月17日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包