吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7118|回复: 109
收起左侧

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

  [复制链接]
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] 纯文本查看 复制代码
1
2
"ProgramPath":"python.exe",
"Command":"\"C:\\test.py\"",

输出为
python.exe "C:\test.py" "C:\"
或者
[Asm] 纯文本查看 复制代码
1
2
"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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
    "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, 2025-4-7 04:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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