我想处理右键单击的文件或文件夹,在系统右键菜单中加选项。
我已经看过一些资料,是在注册表中的HKEY-CLASS-ROOT/*/shellex/HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers中修改,但是其中的一大串数字我不懂是怎样求出来的,也不知道怎样与程序挂接起来。

解决方案 »

  1.   

    如winamp的播放,
    1.目录
    在  HKEY_CLASSES_ROOT\Directory\shell\Winamp.Play
    下加 "&Play in Winamp"  值  HKEY_LOCAL_MACHINE\Software\CLASSES\Directory\shell\Winamp.Enqueue\command
    是winamp的位置
    2.文件的复杂点,看看 HKEY_CLASSES_ROOT\.mp3 ,
                       HKEY_CLASSES_ROOT\Winamp.File\shell,就很好了解了
    3.其实以上都可以通过 我的电脑 -  查看 - 文件夹选项 - 文件类型  来修改
      

  2.   

    如果我想所有的文件都通过我的程序处理,我应该怎样?
    好象需要在/*/中处理的,但是键值怎样得到?
    我贴一下winzip的键值:默认:{E0D79304-84BE-11CE-9641-444553540000}
      

  3.   

    如果我想所有的文件都通过我的程序处理,我应该怎样?
    好象需要在/*/中处理的,但是键值怎样得到?
    我贴一下winzip的键值:默认:{E0D79304-84BE-11CE-9641-444553540000}
      

  4.   

    请问如何在程序中调用Winzip来压缩一个目录呢,请高手出来
      

  5.   

    使用Ishell 的com接口,我记得使IMenuContext,来控制右健菜单,
      

  6.   

    {E0D79304-84BE-11CE-9641-444553540000} 
    这种东西你可以在写注册表时自己规定,只要不和别人的重复就可以了。
    至于学WinZip的右键弹出,你要自己做Shell扩展,然后在Setup的时候把这个ShellExt.dll注册就可以了。
      

  7.   

    得到系统菜单句柄,用API给加上一项,行不行?
      

  8.   

    rocmeteor(流星雨)
    在app中可以用CreateMutex,但是着只是定义防重入的值,是否可以直接拿来用呢?
    另外怎么做Shell扩展?望给一个工程看。
    再:金山毒霸的右键菜单可以动态加入和取消,这是怎么实现的?他可没有setup啊
      

  9.   

    1.给我你的E-Mail。
    2.我没用过金山毒霸,但是他一定也是通过注册Dll的办法。
      

  10.   

    rocmeteor(流星雨) 
    谢谢!!!
    我的email:[email protected]
    再一次表示感谢
      

  11.   

    是用COM完成的,《电脑编程技巧与维护》今年第二期有专文详述
      

  12.   

    rchu(可怜的老马) :
    我正好有这本书,我已经找到了,如果可以的话,马上给分,谢谢
      

  13.   

    rchu(可怜的老马) :
    我正好有这本书,我已经找到了,如果可以的话,马上给分,谢谢
      

  14.   

    是用COM做的,《电脑编程技巧与维护》今年第二期有专文详述
      

  15.   

    rchu(可怜的老马) :我找到文章
    rocmeteor(流星雨):我收到,并用的不错
    谢谢,每人给10分,不好意思了
      

  16.   

    rchu(可怜的老马) :
    rocmeteor(流星雨):
    还有5分,
    当同时选中多个文件时,怎样得到他们的字符串列表?
    另:我这次上来的时候发现上次给分的地方已经变成0了,不知你们收到分数没有?
      

  17.   

    通过GetStartPosition()和GetNextPathname()循环取得所有文件名。
    CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT);if(dlg.DoModal()==IDOK)
    {
    POSITION pos = dlg.GetStartPosition();
    while(pos)
    {
    CString szFile = dlg.GetNextPathname();
    AfxMessageBox(szFile);
    ...
    }
    }
    注:这些话是我从CSDN上查找到的。
      

  18.   

    rocmeteor(流星雨) :
    可是我现在看我的总分确实减少了20分啊,请你再看一下
    但是我现在还有一个问题,那个dll不能在右击硬盘盘符的时候显示,我是在nt4下用的,桌面的“我的公文包”也不行,但是winzip都可以的,请问为什么?谢谢!!!
      

  19.   

    我给你的第二个Sample是在第一个的基础上改出来的,第一个Sample是从CodeGuru上Down的,你说的这个问题我也发现了,但当时赶时间,就没再继续做,你再查查吧。有了答案别忘了告诉我一声,分我就不要了。
    关注。
      

  20.   

    rocmeteor(流星雨) :问题解决了
    把dll中的 REGSTRUCT ("Directory\\shellex\\ContextMenuHandlers\\"SHELLEXNAME)
    改为
    ("Folder\\shellex\\ContextMenuHandlers\\"SHELLEXNAME)
      

  21.   

    Are You Sure?
    我记得我当时改过的。
      

  22.   

    jjlmsdn_cn() :
    我想要dll的源码,能不能给一个看看?谢谢!!1
      

  23.   

    如何像 winzip 那样在鼠标右键加图标,我知道得用dll,高手请指教。
      

  24.   

    anyone who wang dll source may write to me: [email protected].
      

  25.   

    我想要!
    [email protected]
    谢谢!