询问者
如何获取桌面的右键菜单中“新建”的子菜单项?

问题
全部回复
-
没有获得新建菜单的API。
可以用IShellView::GetItemObject (SVGIO_BACKGROUND) 获得桌面背景菜单的IContextMenu接口,然而新建菜单的文字提示每个语言都不一样。
桌面窗口可以这么找
IShellWindows::FindWindowSW SWC_DESKTOP IDispatch::QueryInterface(IWebBrowserApp) IWebBrowserApp::QueryInterface(IServiceProvider) IServiceProvider::QueryService(STopLevelBrowser, IShellBrowser) IShellBrowser::QueryActiveShellView
Visual C++ MVP -
没有获得新建菜单的API。
可以用IShellView::GetItemObject (SVGIO_BACKGROUND) 获得桌面背景菜单的IContextMenu接口,然而新建菜单的文字提示每个语言都不一样。
桌面窗口可以这么找
IShellWindows::FindWindowSW SWC_DESKTOP IDispatch::QueryInterface(IWebBrowserApp) IWebBrowserApp::QueryInterface(IServiceProvider) IServiceProvider::QueryService(STopLevelBrowser, IShellBrowser) IShellBrowser::QueryActiveShellView
Visual C++ MVP -
你好,
感谢您在MSDN论坛发帖提问。
>>继续QueryContextMenu得到的菜单项就还是包含所有的对吧,那不知道能不能去掉其他的菜单项。我其实就是想创建自己的菜单,保留一个“新建”菜单,其他菜单都是自己来自定义。
在Windows 7和更高版本中,通过注册表设置支持级联菜单实现。
在Windows 7和更高版本中,有三种创建级联菜单的方法:
1,使用SubCommands注册表项创建级联菜单
2,使用ExtendedSubCommandsKey注册表项创建级联菜单
3,使用IExplorerCommand界面创建级联菜单更多内容我建议你可以参考一下链接:
https://docs.microsoft.com/zh-cn/windows/win32/shell/context-menu-handlersBest Regards,
Jeanine Zhang
- 已编辑 Jeanine ZhangMicrosoft contingent staff, Moderator 2020年2月28日 3:18
-