
windows11 新右键菜单干掉了几乎所有老的右键菜单..目前 app 也很少开始适配..
这两天查了微软的文档还有微软的开源项目,目前终于搞出来了一个可以添加自定义的菜单的代码
现在菜单需要在 AppxManifest.xml 中定义:
<desktop4:Extension Category="windows.fileExplorerContextMenus"> <desktop4:FileExplorerContextMenus> <desktop5:ItemType Type="*" > <desktop5:Verb Id="Command1" Clsid="46F650E5-9959-48D6-AC13-A9637C5B3787" /> </desktop5:ItemType> </desktop4:FileExplorerContextMenus> </desktop4:Extension> <com:Extension Category="windows.comServer"> <com:ComServer> <com:SurrogateServer DisplayName="Context menu verb handler"> <com:Class Id="46F650E5-9959-48D6-AC13-A9637C5B3787" Path="X.dll" ThreadingModel="STA"/> </com:SurrogateServer> </com:ComServer> </com:Extension> 然后就只需要实现 IExplorerCommand 接口,然后注册就行了
class __declspec(uuid("46F650E5-9959-48D6-AC13-A9637C5B3787")) TestExplorerCommandHandler final : public BaseExplorerCommand { public: const wchar_t* Title() override { return L"sample"; } const EXPCMDSTATE State(_In_opt_ IShellItemArray* selection) override { return ECS_ENABLED; } }; CoCreatableClass(TestExplorerCommandHandler) class BaseExplorerCommand : public RuntimeClass<RuntimeClassFlags<ClassicCom>, IExplorerCommand, IObjectWithSite> { ... } 我自己写了 2 个,一个 7z 解压,一个 vscode 打开文件..
其他的可以自行开发了..这个应该都难不倒大家了
demo 代码我扔到 github 了,无聊的可以看看 ikas-mc/ContextMenuForWindows11
代码问题大家看看就行了,我第一次写 c++
1 israinbow 2021-07-15 19:41:51 +08:00 顶 |
2 israinbow 2021-07-15 19:44:27 +08:00 1# 本来打了很多字, 但是想了想删了, 然后发出来才想起来算无意义灌水了, 在 2 楼补充一下吧. win11 的右键菜单在注册表的位置没有很多变动, 利用 github.com/BluePointLilac/ContextMenuManager/releases 这样的工具依然可以修改及自定义. |
4 Chipmunker 2022-05-13 17:23:18 +08:00 找了很久解决方案了,感谢 OP 的项目。 |
5 nanvon 2022-09-22 17:34:27 +08:00 好用!顶 |
6 usnake 2022-10-13 16:14:45 +08:00 试试啊 想法很好,拥抱变化,而不是一味想切换回旧版 |