实现一键弹出Windowszy管理器的右键菜单

易语言 2020-04-03 16:04:37

实现一键弹出Windowszy管理器的右键菜单

用C++实现了这个功能,主要是用IContextMenu2,IContextMenu3,IShellFolder对象来实现的,对于易来说想实现比较困难,于是我换了个思路来实现,但是实现得并不是那么好。不过至少够用了。

本程序实现原理:
创建Shell.Application对象 -> 得到文件夹的Folder3对象 -> 得到该文件夹下指定文件的FolderItem对象 -> 取得文件的FolderItemVerbs对象 -> 获取右键菜单的FolderItemVerb对象 -> CreatePopupMenu创建菜单 -> AppendMenuA加入菜单条目 -> SetMenuIcon设置菜单图标(由于FolderItemVerb对象不能去除菜单的Icon,所以必须自己设置了) -> TrackPopupMenuEx弹出菜单 -> RunNumMethod (“DoIt”, )执行菜单命令 -> 结束

注释已经加得很全了,注意:本代码是无法获得根目录(比如“C:\”)的菜单的,因为无法设置path。