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++
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.