吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6483|回复: 110
收起左侧

[原创工具] 动态右键菜单功能扩展

  [复制链接]
onlyclxy 发表于 2023-12-5 23:48
本帖最后由 onlyclxy 于 2023-12-13 11:22 编辑

传递多路径到同一程序
可以分别设置显示在文件菜单,目录菜单,文件夹背景菜单,多层级菜单,按扩展名来显示菜单
可直接运行程序,路径,网址,cmd命令
图标可以设置常见图片格式和从任意文件获取图标
自定义传参,比如设置一个参数-k 这个可以分别传给所有的地址
这个主要是为了实现传递选中的多文件的路径到一个程序上.而这个通过注册表是不好实现的.
复制路径到剪贴板功能
打开所在文件夹并且选中文件或目录 (这个本来用explorer select可以实现,但是这个启动新进程会特别慢.所以增加这个功能.)
别的都只是提供一些拓展的可能性,

c#,框架framework4.8.引用sharpshell

更新2023-12-13
添加注册了全部类型.原来好多软件上不出现右键. 现在能支持弹窗的地方都支持了..



更新2023-12-10
1.修复那个OnlyUsingProgram在文件夹背景不能用的问题.
2.增加了个可能是鸡肋的功能,可以增加个弹窗..

"Text": "弹窗",
"ShowInRootMenu": true,  
ProgramPath:"messagebox.show",
Command:"内容,标题",        






更新2023-12-8
1.重构了部分代码.增加给路径添加引号的设置
UseQuotes:true 默认为真,默认会给路径加引号,为假的时候不加引号.
这样子路径用设置加引号. 命令方面可以自己加引号
例:
[Asm] 纯文本查看 复制代码
"ProgramPath":"python.exe",
"Command":"\"C:\\test.py\"",

输出为
python.exe "C:\test.py" "C:\"
或者
[Asm] 纯文本查看 复制代码
        "ProgramPath":"python \"C:\\test.py\"",
        "RunningProgramWithCMD":true,

输出为
python "C:\test.py" "C:\"



更新 2023-12-7
1 路径现在改到添加到所有参数的后面,这样很多命令就正常了. 比如python.exe 显示路径.py 选中路径 这种好几个叠起来的就可以正常运行了.
2.图标现在除了常用图片外,改为获取全部格式的ico图标.就比如你见一个文件是json图标挺好看,你可以把这个json文件的路径填进去,然后就变成了json的图标..
3.增加使用cmd运行命令.这样可以直接在ProgramPath输入命令从而用cmd执行
4.cmd命令的一些拓展,可以隐藏cmd窗口启动,或者保持cmd不关闭.方便各种用途.比如你给文件设置隐藏属性,可能就不需要显示cmd窗口. 比如你要ping ip,就需要保持窗口不要一闪而过.
5.增加菜单分割线
6.增加自检弹窗. 这个可以检测实际运行的命令和路径是否符合预期.
7.增加菜单文本动态显示路径功能.就是那个压缩包.你选中文件点压缩包,会直接显示解压到xxx,或者压缩到xxx. 这个,可以把路径,或者文件名等传给菜单显示
image.png
这个配置文件模板 放到了原始Json文件备份里,名字是MenuConfig_new.json,有兴趣可以改名用这个试试
另外查了查GPT说是win11的多标签获取路径好像弄不了,先这样把.测试这个测试的我要吐啊...


介绍说明:
最早其实是用ffmpeg做视频转换功能的bat,放到右键里,发现只能一个一个转换.不方便批量.
后来写程序,即使能获取参数,但是右键菜单不能一次性传多个路径到程序里.除非程序放到发送到里,发送到可以发送多个路径到一个程序里
但是发送到需要点二级菜单,感觉还是有点不太理想.
然后问了好多人,包括来吾爱这边问问题,最后问到一个大佬给了个c#的方案sharpshell
但是当时也不会c#,也改不了.而且系统的东西.资料少.项目就搁置了没有实际用上
直到上周突然有有需求, 又是想写一个转换图片的功能. 转换功能很快实现了,又卡到右键这里了.然后觉得不能再懒了. 来继续完善这个项目把
于是拿示例里博主的基础代码,改了一个星期.大概改成了自己想要的样子
自己当时相关研究贴:
https://www.52pojie.cn/thread-1710451-2-1.html
https://www.52pojie.cn/thread-1718059-1-1.html

现在是设置了一个json,可以手动改这个json文件,来实现右键菜单的增删

Snipaste_2023-12-05_23-45-09.png

菜单直接用json控制

image.png


多路径带自定义参数传递
image.png

多路径不带参数传递
image.png

可以设置烂七八糟的程序,参数直接复制就行,程序和图标可以直接填路径,或名字
图.jpg

现在的默认配置,供参考

Snipaste_2023-12-05_23-15-53.png
image.png





重要提示,这次这个东西属于生产环节中间的一个的程序. 不是给普通用户用的.因为特别不方便. 需要手动配置json. 我自己都得测试半天..要是json文件配置出错.点菜单会弹窗报错,或者菜单不会显示了. 但是好在做了一个log文件. 部分出错会提示在log文件里.
普通用户的话. 推荐pathcopycopy或者那个Configure FileMenu Tools吾爱都可以搜到,这俩都有界面.
这个东西就是比如你要写一个什么bat,或者写一个什么程序可以接收路径的. 这个就能用上了. 这个东西可以把路径传给你的程序.而且不用你再去设置注册表了.而且方便部署. 你可以把你的程序和这个东西一起打包给人家. 注册一下dll就生效了.
当然你直接运行某个程序也行...



下载地址
右键菜单扩展功能_23-12-13.rar - 蓝奏云 (lanzoul.com)

或者有更新的话会更新到这个文件夹
https://wwz.lanzoul.com/b01xlmxsj
密码:3y71

免费评分

参与人数 15吾爱币 +21 热心值 +13 收起 理由
LukYuTeaHous + 1 + 1 热心回复!
RGPLD + 1 谢谢@Thanks!
liuzqm + 1 + 1 我很赞同!
summcat + 1 + 1 我很赞同!
gufengaoyue + 1 + 1 用心讨论,共获提升!
kbhu + 1 我很赞同!
hongfeng + 1 + 1 热心回复!
会飞的花 + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
阿拉灯神丁 + 1 + 1 我很赞同!
BonnieRan + 1 + 1 谢谢@Thanks!
lcg2014 + 1 + 1 谢谢@Thanks!
15235109295 + 1 + 1 谢谢@Thanks!
langzqf + 1 + 1 热心回复!
hrpzcf + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| onlyclxy 发表于 2024-10-25 23:16
本帖最后由 onlyclxy 于 2024-10-25 23:20 编辑
wiimoo 发表于 2024-10-25 00:24
有2级,3级子列表的最外层的父级名称, 会显示一个 "功能"  的名称,这个名称不能自定义么

幸亏我试了试..哈哈,差点都忘了..
拿下面这个配置举例子:
本身程序是必须有个顶级菜单的. 但是这个默认不显示的. 你现在显示一个""功能"". 是因为默认的那个json模板里. "text:在子菜单中的项"这个条目没有设置根目录....
[Asm] 纯文本查看 复制代码
    {
        "Text": "在子菜单中的项",
        "Command": "command2",
        "ShowInRootMenu": false,
        "ShowOnFolder":true,  
                "IsVisible":true,
        "ShowOnFiles": true,
          "SubItems": [
            {
                "Text": "子菜单项1",
                "Command": "subcommand1", 
                                "ShowOnFolder":true,  
                                "ShowOnFiles": true,
                                
            },
                        {
                "Text": "我不显示在文件菜单上",
                                "ShowOnFolder":true,  
                                "ShowOnFiles": false,
                                "ShowOnFolderBackground": true,
                                  "SubItems": [                                  
                                          {
                                        "Text": "子菜单项3",
                                        "Command": "-传递命令", 
                                        "ShowOnFolder":true,  
                                        "ShowOnFiles": true,
                                        },
                                  
                                ]
                        }
            
        ]
    },


就是这个        "ShowInRootMenu": false,    我刚才看了一下. 默认这个false. 表示这个不显示在根菜单上. 但是"ShowOnFolderBackground": true, 这个他又显示在文件夹背景里..  所以他这个逻辑就是.他一定要出现在背景菜单里. 但是他不要在一级菜单里 ,那就把他指定到了"功能"这个程序的顶级菜单下.
所以解决方案是  "ShowInRootMenu": true,  这个就是把这个菜单放到一级菜单里 . 然后"功能"那个默认的顶级菜单,因为没有子选项.就会隐藏了
这个反正是你想要哪个在顶级菜单里, 哪个就设置为 "ShowInRootMenu": true,   , 然后不要空置一个 "ShowInRootMenu": false,  这个东西就行.
gufengaoyue 发表于 2023-12-7 17:59
本帖最后由 gufengaoyue 于 2023-12-7 18:19 编辑

感谢更新!
但还是有点问题:

                        {
                                "Text": " >>> 检查 Dat 文件 <<<",
                                "ShowInRootMenu": true,
                                "FileTypes": [".dat"],
                                "ProgramPath": "Python.exe",
                                "Command":"D:\\Python\\dat_check.py",
                                "IconPath": "python.exe",
                                "AppendCommandToEachPath": true,
                                "DisplayCompletePathAndCommand":true,                        },

这个路径还是有点问题,运行不了。
正确格式应该是
python.exe "d:\python\dat_check.py" "y:\02_city\11p12\Pan1112.Dat"

但程序执行的是
python.exe "d:\python\dat_check.py y:\02_city\11p12\Pan1112.Dat"
程序把后面两个参数放在同一个双引号里面去了。

如果使用cmd,就会变成:
cmd "python.exe d:\python\dat_check.py y:\02_city\11p12\Pan1112.Dat"
应该是
cmd "python.exe" "d:\python\dat_check.py" "y:\02_city\11p12\Pan1112.Dat"

对exe路径以及传入的文件路径 包一个双引号
================================================================

又试了一下,改成这样是可以的。
只是exe的路径不能有空格。

                        {
                                "Text": " >>> 检查 Dat 文件 <<<",
                                "ShowInRootMenu": true,
                                "FileTypes": [".dat"],
                                "RunningProgramWithCMD":true,
                                "ProgramPath": "Pythonw.exe D:\\Python\\dat_check.py",
                                "IconPath": "python.exe",
        "AppendCommandToEachPath": true,
//                        "DisplayCompletePathAndCommand":true,
                                "HideCmdWindow":true,
                        },


================================================================
helh0275 发表于 2023-12-6 00:17
感谢分享,但我个人喜欢右键清爽一点点

免费评分

参与人数 1吾爱币 +1 收起 理由
onlyclxy + 1 热心回复!

查看全部评分

天空の幻像 发表于 2023-12-6 00:23
看起来还复杂哈哈

免费评分

参与人数 1吾爱币 +1 收起 理由
onlyclxy + 1 热心回复!

查看全部评分

liulued 发表于 2023-12-6 01:16
感谢分享,非常有用

免费评分

参与人数 1吾爱币 +1 收起 理由
onlyclxy + 1 我很赞同!

查看全部评分

 楼主| onlyclxy 发表于 2023-12-6 01:47

可不..我自己都测试研究半天...
 楼主| onlyclxy 发表于 2023-12-6 02:01
helh0275 发表于 2023-12-6 00:17
感谢分享,但我个人喜欢右键清爽一点点

我也是...还是看的少的比较得劲..
但是上班用的东西多.. 就还是以干活为主了
rainord 发表于 2023-12-6 02:20
好东西,谢谢分享
yinuo2012 发表于 2023-12-6 06:32
右键菜单还是精简一点舒服,保留常用的功能就好。
baoqingzxc 发表于 2023-12-6 06:59
还是喜欢这种精简的右键菜单,感谢楼主分享!
huaihuaivip 发表于 2023-12-6 07:09
支持楼主,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 16:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表