Windows 11 有没有这样的菜单 Api - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ColinZeb
V2EX    程序员

Windows 11 有没有这样的菜单 Api

  •  
  •   ColinZeb
    ColinZeb 2022-08-12 09:34:14 +08:00 4813 次点击
    这是一个创建于 1157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图,如果能把压缩软件的子菜单实现为类似顶部的快捷按钮,我就打算自己用 7z 实现一个。

    但是没见过别的软件实现过,也不会找 win api ,请教一下各位。 Clip_20220812_092804.png

    17 条回复    2022-08-14 16:10:20 +08:00
    ColinZeb
        1
    ColinZeb  
    OP
       2022-08-12 09:37:14 +08:00
    附加一个补充议题,不知道各位有没有这样的一个解压需求,就是自动解压到某个固定文件夹并打开解压后文件夹,比如下载的各种绿色软件。现在的 360 压缩,bandzip 所谓的自动解压都是自动解压当前目录,但是没实现自动解压到固定 /常用目录
    zed1018
        2
    zed1018  
       2022-08-12 09:42:03 +08:00
    目测是没有的,而且我个人不希望有,不然一堆国产软件肯定无脑注册那块的入口。我个人支持 win11 的新版右键菜单的一部分原因就是一个程序只能注册一个入口,不然右键拉出来一大长溜。
    codehz
        3
    codehz  
       2022-08-12 09:42:37 +08:00
    顶部的就是系统独占的(
    ColinZeb
        4
    ColinZeb  
    OP
       2022-08-12 09:47:48 +08:00
    @zed1018
    @codehz 不是要顶部的,而是单独一行,就比如 winrar 所在这一行。做成排列的
    codehz
        6
    codehz  
       2022-08-12 09:51:58 +08:00
    @ColinZeb #4 那也不行,这个菜单定制能力很弱,只有单行文字+图标,然后顶级菜单也只能是静态的(子菜单内容可以动态决定)
    popok
        7
    popok  
       2022-08-12 09:52:19 +08:00
    @ColinZeb #4 winrar 设置里可以选择不折叠啊,全部显示在同一列。

    而且你需要自己搞这种的话,应该是在注册表里添加的,具体你可以搜一下“右键菜单 注册表”
    weiwei17Ra
        8
    weiwei17Ra  
       2022-08-12 09:57:31 +08:00
    @ColinZeb 你说的不就是自定义 context menu 这个功能吗
    就是右键点击一个对象的时候 重新绘制 右键上下文菜单 加入自己的功能
    这个需要老的 win32
    开发 基本上是 hook explorer 用 c 或者出 c++ .net 开发需要 c 或者出出 c++写的 dll 操作
    你是 github 上找找
    geelaw
        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
    eason1874
        10
    eason1874  
       2022-08-12 10:18:52 +08:00
    Windows 右键菜单在注册表就可以添加,跟数据库管理差不多,也就新建几项,指向你要运行的程序

    你要自定义处理过程,写个 bat 或者 ps1 ,右键菜单 command 指向它就可以,好像传入第一个参数就是对应文件路径。关键词:windows add context menu
    sunhelter
        11
    sunhelter  
       2022-08-12 11:08:36 +08:00
    @zed1018 没有限制一个吧,PowerToys 就注册了 PowerRename 和调整图片大小两个菜单
    mgrddsj
        12
    mgrddsj  
       2022-08-12 11:15:38 +08:00
    @ColinZeb #1 这个需求我可以答,但可能得习惯一下。
    把常用目录固定到快速访问。以后见到压缩包,在文件资源管理器里打开到它的目录,选中压缩包之后,右键按住并拖拽到左侧快速访问里面的目标文件夹。在弹出的窗口里用你喜欢的解压缩软件解压就可以。

    缺点是不能在浏览器里的下载里直接打开压缩包,必须“在文件资源管理器打开到文件目录”。

    这里用 Bandizip + Win 10 举例:


    注意是按住右键拖动压缩包到目标文件夹。
    clf
        13
    clf  
       2022-08-12 11:18:09 +08:00
    我现在 win11 已经是双击解压了。
    zed1018
        14
    zed1018  
       2022-08-12 11:29:41 +08:00
    @sunhelter 具体限制不太清楚,但是确实在哪里看到过,另一方面 powertoys 的工具其实都是独立的。
    ColinZeb
        15
    ColinZeb  
    OP
       2022-08-12 12:55:00 +08:00
    @mgrddsj 这个不错,感谢。

    @eason1874 自定义菜单一直就有,我想要的是一行菜单多个命令,不是多行菜单也不是二级菜单。参考就是 win11 自带的第一行菜单,截图蓝色划线部分
    ikas
        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
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2809 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:25 PVG 21:25 LAX 06:25 JFK 09:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86