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
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 1
试试啊 想法很好,拥抱变化,而不是一味想切换回旧版
|