在 Windows 选中文件/文件夹后如何添加右键菜单,能传递选中的全部文件名到我的程序? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
konecos
V2EX    问与答

在 Windows 选中文件/文件夹后如何添加右键菜单,能传递选中的全部文件名到我的程序?

  •  
  •   konecos 2018-05-01 03:14:50 +08:00 2475 次点击
    这是一个创建于 2733 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前的情况是:

    选中单个文件后传递选中的文件名到我的程序

    选中多个文件后运行多个程序并每个程序附带一个文件名参数

    选中文件夹后无这个菜单选项

    选中文件与文件夹后无这个菜单选项

    如何实现

    一次性传递多个文件 /文件夹名单个我的程序

    单个文件 /文件夹的话不显示菜单选项

    第 1 条附言    2018-05-01 16:42:15 +08:00
    实际上只实现 一次性传递多个文件 /文件夹名到单个我的程序 也可以
    8 条回复    2018-05-01 20:36:19 +08:00
    geelaw
        1
    geelaw  
       2018-05-01 03:49:51 +08:00 via iPhone   2
    我建议你购买微软的开发者技术支持,499 USD 一个问题,或者 1999 USD 五个问题。

    简单的搜索就能有答案,你真的不会觉得钱太好赚了吗?用金钱可以让人懂得提问之前需要自己付出一些 effort。

    一般的 context menu 的介绍 https://msdn.microsoft.com/en-us/library/windows/desktop/cc144169(v=vs.85).aspx

    你需要一个 verb,如何选择 static 还是 dynamic,选择哪种 dynamic,这里是介绍 https://msdn.microsoft.com/en-us/library/windows/desktop/dd758091(v=vs.85).aspx

    你需要 dynamic,根据文档的介绍,最简单的、满足你的需要的方式是使用 IExplorerCommanf 接口,这里是实现规范 https://msdn.microsoft.com/en-us/library/windows/desktop/bb761880(v=vs.85).aspx
    kokutou
        2
    kokutou  
       2018-05-01 07:36:53 +08:00 via Android
    去翻 7-zip 的源码。。。
    zmj1316
        3
    zmj1316  
       2018-05-01 08:13:29 +08:00 via Android
    应该是改注册表让系统传参数的 直接上 MSDN 看看?
    geelaw
        4
    geelaw  
       2018-05-01 09:40:07 +08:00
    My apologise 因为头像是 hash 生成的所以看错发帖人,以为是同一个人连续问了好几个问题。
    konecos
        5
    konecos  
    OP
       2018-05-01 13:21:23 +08:00
    @zmj1316 的确通过修改注册表达到了一开始说的情况,但是无法达成我的目的,已通过搜索引擎都搜索了,基本上找不到有用的方法,有搜索到的一条解决办法是让多个开启的程序进行互相通讯然后传达参数到第二个程序
    goreliu
        6
    goreliu  
       2018-05-01 13:47:23 +08:00
    这种比较复杂的场景得写 dll,写注册表的话应该是不行的。
    imn1
        7
    imn1  
       2018-05-01 14:27:23 +08:00
    右键 -> 单个 F,多个 T
    这种需求只能自写吧?

    如果我有你上述需求的话,我会在 TC 工具栏弄个自定义按钮

    文件夹右键注册表项是:HKEY_CLASSES_ROOT\Directory\shell\自己添加的程序
    自己搜搜
    Arnie97
        8
    Arnie97  
       2018-05-01 20:36:19 +08:00 via Android
    HKCR 里面文件夹相关的有 Directory,Drive 和 Folder ;另外,还有简单粗暴的 shell:sendto。
    但是要区分一个还是多个恐怕要用 DLL。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     922 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 20:15 PVG 04:15 LAX 13:15 JFK 16:15
    Do have faith in what you're doing.
    ubao msn 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