热情软件屋

 

如何用VB在资源管理器的快捷菜单上添加自己的选项


编号:QA000823
建立日期: 1999年4月17日 最后修改日期:1999年8月8日
所属类别:

唐斌:
    象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中实现整个过程可以参考微软的例子程序ICtxMenu.exe
    在Delphi和VC++中也有类似的示例程序。Delphi的例子在Borland\Delphi4\Demos\Activex\Shellext目录。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio