我用shell增加了一个右键功能,但是当前只能对txt文件有效。我注册的位置是Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved 。我因该怎么作才可以像winzip之类的软件一样,只要有文件或者文件夹被选中的时候就可以弹出winzip的选项?

解决方案 »

  1.   

    如果只处理文件而不管文件夹只要在HKEY_CLASSES_ROOT\*\shell下面建一个子键(键名就是菜单项文字),再在其下面创建一个command子键,默认值写你的exe路径及文件名就可以。
    如果文件夹也要处理,需要写一个组件注册到系统中,再把CLSID添加到HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers下面。组件的具体做法我也不清楚,你在网上搜索一下吧。
      

  2.   

    用 Shell扩展例子, 源代码 
    http://www.vckbase.com/document/viewdoc/?id=827
      

  3.   

    谢谢楼上各位,我是用shell编程写的,但是注册以后只有txt文件右键才弹出我的菜单项,我想让所有的文件和文件夹都弹出,像winrar那样。我想这个因该是注册的问题。但是不知道怎么注册才可以被所有文件和文件夹找到呢???
    我网上也没搜索到这个,somebody help me?
      

  4.   

    一般文件,在注册表HKEY_CLASSES_ROOT\***\shell里添加就可以关注!
      

  5.   

    http://www.codeproject.com/KB/shell/shellextguide2.aspx
      

  6.   

    问题解决了,就是在HKEY_CLASS_ROOT\*\shellex\contentmenuhandlers 下面建立一个key,然后把dll的guid填入。
    还要在HKEY_CLASS_ROOT\Directory\shellex\ 下面再注册一些就可以了。