如何实现选定文件或文件夹后按右键出现的菜单中加入自己的选项

comeonstuding 2004-08-12 09:01:53
如何实现选定文件或文件夹后按右键出现的菜单中加入自己的选项,用vb实现,像winrar那样有压缩和解压。
...全文
166 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
落伍者 2004-08-12
强,学习中
  • 打赏
  • 举报
回复
rainstormmaster 2004-08-12
//右键菜单是扩展IContextMenu接口,不是IShellPropSheetExt接口

汗,没认真看问题
  • 打赏
  • 举报
回复
jtkkjtkk 2004-08-12
象WINZIP那样,在某个文件上单击鼠标右键,在弹出的系统菜单中会根据当前的文件出现ADD ZIP等菜单项,如何用VB来实现这项功能?请指教

回答:

对于简单的菜单应用实际并不需要编程,只需要修改注册表就可以实现。比如安装了PowerToy后,它会在你选择一个目录时增加一项Command Prompt Here,实际上只是在HKEY_CLASSES_ROOT\Directory\shell\DosHere\command下增加了一行:
C:\WIN95\command.com /k cd "%1"
这样Windows会把选择的文件或目录以命令行参数的形式传递给你的程序。参考QA000595 "如何在VB中加入命令行参数"。
不过如果你想制作复杂的应用就需要进行Shell Extension编程,具体地说是IContextMenu外壳扩展。你需要建立一个ActiveX DLL,在这个DLL中要实现IContextMenu(或IContextMenu2,两者的区别在于IContextMenu2允许菜单上包括图形)接口。实现了这个接口,你还需要修改相应的注册表项。这样,当用户选择一个文件后,系统会调用你的DLL,询问你是否支持该文件。如果支持,你就利用系统传递给你的菜单句柄,在这个菜单上加一个菜单项。如果用户选择了你的菜单项,系统会再次通知你,你就开始执行对该文件的操作。在VB中实现整个过程可以参考微软的例子程序:http://www.china-askpro.com/download/ICtxMenu.exe

  • 打赏
  • 举报
回复
TechnoFantasy 2004-08-12
右键菜单是扩展IContextMenu接口,不是IShellPropSheetExt接口。
  • 打赏
  • 举报
回复
rainstormmaster 2004-08-12
你用google搜索IShellPropSheetExt应该会得到一定的帮助
  • 打赏
  • 举报
回复
TechnoFantasy 2004-08-12
中文资料我还没有找到有VB的,中文的只有用VC的和Delphi的。
  • 打赏
  • 举报
回复
danielinbiti 2004-08-12
做个记号,好研究^_^
  • 打赏
  • 举报
回复
comeonstuding 2004-08-12
有没有中文的说明啊
  • 打赏
  • 举报
回复
rainstormmaster 2004-08-12
呵呵,shell扩展,够你研究上一阵子的
  • 打赏
  • 举报
回复
TechnoFantasy 2004-08-12
Delphi实现:
http://blog.csdn.net/technofantasy/archive/2001/01/18/2948.aspx

VB实现:
http://www.mvps.org/emorcillo/vb6/shell/shlext.msi
这是一个整个的VB Shell Extension的源程序包,说明参见:
http://www.mvps.org/emorcillo/vb6/shell/index.shtml
  • 打赏
  • 举报
回复
rainstormmaster 2004-08-12
看这个吧:
http://www.china-askpro.com/msg9/qa23.shtml
http://search.csdn.net/Expert/topic/1355/1355101.xml?temp=.3454706
  • 打赏
  • 举报
回复
相关推荐
发帖
VB基础类

7615

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2004-08-12 09:01
社区公告
暂无公告