对于简单的菜单应用实际并不需要编程，只需要修改注册表就可以实现。比如安装了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，询问你是否支持该文件。如果支持，你就利用系统传递给你的菜单句柄，在这个菜单上加一个菜单项。如果用户选择了你的菜单项，系统会再次通知你，你就开始执行对该文件的操作。
    在Delphi和VC++中也有类似的示例程序。Delphi的例子在Borland\Delphi4\Demos\Activex\Shellext目录。 
<END>

