如图,如果能把压缩软件的子菜单实现为类似顶部的快捷按钮,我就打算自己用 7z 实现一个。
但是没见过别的软件实现过,也不会找 win api ,请教一下各位。
1
ColinZeb OP 附加一个补充议题,不知道各位有没有这样的一个解压需求,就是自动解压到某个固定文件夹并打开解压后文件夹,比如下载的各种绿色软件。现在的 360 压缩,bandzip 所谓的自动解压都是自动解压当前目录,但是没实现自动解压到固定 /常用目录
|
2
zed1018 2022-08-12 09:42:03 +08:00
目测是没有的,而且我个人不希望有,不然一堆国产软件肯定无脑注册那块的入口。我个人支持 win11 的新版右键菜单的一部分原因就是一个程序只能注册一个入口,不然右键拉出来一大长溜。
|
3
codehz 2022-08-12 09:42:37 +08:00
顶部的就是系统独占的(
|
5
zed1018 2022-08-12 09:48:44 +08:00
|
6
codehz 2022-08-12 09:51:58 +08:00
@ColinZeb #4 那也不行,这个菜单定制能力很弱,只有单行文字+图标,然后顶级菜单也只能是静态的(子菜单内容可以动态决定)
|
7
popok 2022-08-12 09:52:19 +08:00
|
8
weiwei17Ra 2022-08-12 09:57:31 +08:00
@ColinZeb 你说的不就是自定义 context menu 这个功能吗
就是右键点击一个对象的时候 重新绘制 右键上下文菜单 加入自己的功能 这个需要老的 win32 开发 基本上是 hook explorer 用 c 或者出 c++ .net 开发需要 c 或者出出 c++写的 dll 操作 你是 github 上找找 |
9
geelaw 2022-08-12 10:08:56 +08:00 1
@weiwei17Ra #8 开发方法应该是 IConextMenu, IDropTarget, IExecuteCommand, IExplorerCommand, IExplorerCommandState 之类的,不需要 hook explorer 。
如果是静态菜单,有好几种方法: https://docs.microsoft.com/en-us/windows/win32/shell/creating-static-cascading-menus 如果是动态菜单,目前推荐的方法是使用 IExplorerCommand (简单功能),古老的方法是使用 IContextMenu, IContextMenu2, IContextMenu3 (复杂功能)。 https://docs.microsoft.com/en-us/windows/win32/shell/how-to-implement-the-icontextmenu-interface |
10
eason1874 2022-08-12 10:18:52 +08:00
Windows 右键菜单在注册表就可以添加,跟数据库管理差不多,也就新建几项,指向你要运行的程序
你要自定义处理过程,写个 bat 或者 ps1 ,右键菜单 command 指向它就可以,好像传入第一个参数就是对应文件路径。关键词:windows add context menu |
12
mgrddsj 2022-08-12 11:15:38 +08:00
@ColinZeb #1 这个需求我可以答,但可能得习惯一下。
把常用目录固定到快速访问。以后见到压缩包,在文件资源管理器里打开到它的目录,选中压缩包之后,右键按住并拖拽到左侧快速访问里面的目标文件夹。在弹出的窗口里用你喜欢的解压缩软件解压就可以。 缺点是不能在浏览器里的下载里直接打开压缩包,必须“在文件资源管理器打开到文件目录”。 这里用 Bandizip + Win 10 举例: 注意是按住右键拖动压缩包到目标文件夹。 |
13
clf 2022-08-12 11:18:09 +08:00
我现在 win11 已经是双击解压了。
|
15
ColinZeb OP |
16
ikas 2022-08-13 11:02:36 +08:00
目前没有这个 api
右键拖动那个菜单 api,老的写法还能用 目前新的能用的几乎都是针对 packaging app 的.... https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/desktop-to-uwp-extensions#context-menu |
17
TGSAN 2022-08-14 16:10:20 +08:00 via Android
|