服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

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

日期: 来源:微软开发者MSDN收集编辑:俞正东

点击上方蓝字

关注我们

(本文阅读时间:8分钟)


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

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

  • 复制文件路径
  • 复制文件夹路径
  • 我的工具箱 <走配置文件动态创建子菜单,下面会讲>
我上图是在 win10 操作系统下演示的,在 win11 系统也测试可用。

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

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



微软MVP实验室研究员


俞正东


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





如何安装


软件包下载后,解压后:
  • 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 方式打开,对于是大数字会显示成下面这样。

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





开始安装


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

  • ServerManager.exe 安装扩展用的
  • menu.txt 动态菜单配置文件
  • WindowsExplorerExtentions.dll 扩展逻辑封装

▍首先打开 ServerManager.exe

这个工具你也可以从官方地址下载:
  • https://github.com/dwmkerr/sharpshell/releases

打开 ServerManager.exe 点击 Load Server 
然后选中当前目录的 WindowsExplorerExtentions.dll
选中第一个然后点击 Install 安装扩展
出现如下提示代表安装成功
 
此时,复制文件地址和复制文件夹地址这2个扩展菜单已经可用了

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

▍打开 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}"
我们这么配置下:
配置好后,在 csv 类型文件点击右键,就可以看到效果了。
点击该菜单,会启动一个 cmd 窗口,注意,在非 csv 的文件是不会有这个菜单的,这个是根据配置来的。
其实就是将选中的文件路径传给你配置的可执行文件去执行。




源码说明


打开 vs 创建一个空的 solution,新增一个新的 Class Library 工程(目标是 framework)。
引入 ShapShell 包:
示例代码

[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)] 不能漏。

▍如何调试


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

*未经授权请勿私自转载此文章及图片。

微软最有价值专家(MVP)



微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。30年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。
MVP是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。
更多详情请登录官方网站:
https://mvp.microsoft.com/zh-cn

 谢谢你读完了本文!欢迎在评论区留言分享你的想法,并且转发到朋友圈

长按识别二维码
关注微软开发者MSDN  

喜欢记得分享哦~

相关阅读

  • 活动预告 | 春归来,3月3日相聚纺织之乡——南通

  • 免责声明报告中的信息、意见等均仅供查阅者参考之用,并非作为或被视为实际投资标的交易的建议。投资者应该根据个人投资目标、财务状况和需求来判断是否使用报告之内容,独立做
  • 科研必须了解的24种材料表征仪器

  • 当前,材料分析测试技术和仪器设备众多,并且各有优点,随其应用范围愈广,现有的测试表征手段越来越不能满足要求,发展新的表征方法、测试技术势在必行。就目前的现状,小编汇总了材料
  • 狂飙至24℃!但需注意……

  • 今天白天省内大部地区阳光回归虽然受到弱冷空气影响中东部地区北风略有加强但依然无法阻挡升温的步伐(14时风云4号卫星云图截图)截至下午4点除恩施外,省内大部分地区高温都在17
  • 微软把新必应按钮加进Windows 11搜索框

  • 【环球网科技综合报道】3月1日消息,据外媒报道,微软首席产品官帕诺斯·帕奈发布更新公告称,在Windows最新推送的更新中,集成生成式人工智能功能的新必应将出现在电脑的搜索栏上,
  • 小盘低价可转债策略YYDS?

  • 一.已经退市可转债数据统计数据源:市场整体余额大于3500亿以后即2020年元旦~2023年2月14日之间的退市数据,合计204只。统计数据:数据说明:1、最高价中位数:单只可转债存续时间的
  • 3月1日投资提示:天创时尚收到广东证监局警示函

  • 科达转债,申昊转债:未来3个月不下修中旗新材:3月3日申购天创时尚:因财务核算不准确等原因,收到广东证监局警示函明阳科技:北交所申购关注集思录微信特别提示本文不构成任何投资建

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

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

  • 点击上方蓝字关注我们(本文阅读时间:8分钟)今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下:如上图,右键菜单多了几个我自定义的菜单:复制
  • 康庄从艺六十周年创作及收藏展在京举办

  •   3月1日下午,“传统今朝”—康庄从艺六十周年创作及收藏展在北京嘉德艺术中心举行。画展由中国嘉德艺术中心、山东省美协主办,画展为期三天,共展出康庄画作及藏品100余件。
  • 3月的时令恩物,每一种都不肯错过。

  • 阳春三月,万物和胃口一同复苏。好吃的太多,每一种都不忍错过。‍清香水灵的春野菜在此时集中冒头:竹笋一夜之间破土而出;肥嘟嘟的香椿也在用浓浓的山野春意装点餐桌。‍‍桃李梅