日期:
来源:微软开发者MSDN收集编辑:俞正东
点击上方蓝字
关注我们
今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下:
如上图,右键菜单多了几个我自定义的菜单:
复制文件路径 复制文件夹路径 我的工具箱 <走配置文件动态创建子菜单,下面会讲>
源码和工具包已经开源在 github
https://github.com/yuzd/WindowsExplorerExtensions
微软MVP实验室研究员
俞正东
微软最有价值专家(MVP),.NET 技术专家,热爱开源,关注并喜欢研究前沿技术,热衷于技术和经验分享,长期撰写技术博客,活跃于开源社区。
如何安装
windows-explorer-ext 目录是安装扩展文件用的 30594988.csv 是测试 csv 转 excel 的 demo 文件 csv2xlsx.exe 是我开发的一个 netcore 独立打包的 csv 转 excel 的执行文件
https://github.com/yuzd/Exporter/tree/master/ConsoleApp
是基于我开源的各种类型转化封装库,比如 csv,xlsx,json,list 相互转化。
开源地址:
https://github.com/yuzd/Exporter
有人可能会问 ,如果电脑安装了 office 的话,直接 csv 就可以打开为 excel 啊, 但是默认的双击 csv 以 excel 方式打开,对于是大数字会显示成下面这样。
开始安装
进入解压后的 windows-explorer-ext 目录
ServerManager.exe 安装扩展用的 menu.txt 动态菜单配置文件 WindowsExplorerExtentions.dll 扩展逻辑封装
▍首先打开 ServerManager.exe
https://github.com/dwmkerr/sharpshell/releases
<我的工具箱>是动态创建二级子菜单的容器,需要配置下文件
▍打开 menu.txt 配置文件
[1] 针对什么后缀的文件进行 比如 .csv 代表只针对 csv 文件才会创建该菜单 [2] 菜单名称 [3] 这个菜单功能对应的可执行文件 这个根据功能自己开发了 [4] 传给上面可执行文件的参数 {path} 会动态替换为选择的文件地址全路径
*-_-测试-_-E:\xxxxx\xxxx.exe-_-"{path}"
folder-_-测试-_-E:\xxxxx\xxxx.exe-_-"{path}"
.csv-_-转成excel-_-E:\Tool\windows-extention\csv2xlsx.exe-_-"{path}"
我们这么配置下:
源码说明
[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)] 不能漏。
*未经授权请勿私自转载此文章及图片。
微软最有价值专家(MVP)
https://mvp.microsoft.com/zh-cn
谢谢你读完了本文!欢迎在评论区留言分享你的想法,并且转发到朋友圈。