怎样做winzip那样在右键直接调用(50分)

  • 主题发起人 主题发起人 wzpok
  • 开始时间 开始时间
W

wzpok

Unregistered / Unconfirmed
GUEST, unregistred user!
winzip程序安装后 在文件或文件夹点击右键就能调用winzip压缩<br>这用到了那些技术我也想编类似程序需要学习那些知识<br>是不是用到了有关com和hook方面的知识<br>请推荐几个有关的原程序和文章的网站
 
但我要边的程序不是压缩程序只是想知道如何<br>在文件或文件夹点击右键就能调用
 
修改注册表:<br>在[HKEY_LOCAL_MACHINE/Software/CLASSES/Directory/shell]中加入键名,将<br>默认串改为相应提示,下面再建一键[command],写入命令即可。<br>contextmenu用法不太一样。
 
看看demo下的 activeX目录下的shellext例子<br>很清楚的<br>
 
察看"已答问题",有人问了好几次了.
 
以前yysun问过这个问题,aimingoo 回答了<br>修改注册表,你可以查看已答问题
 
修改注册表的方法我知道这只是静态添加<br>我要像WINZIP那样点击右健时使菜单分文件和文件夹两种不同情况动态改变<br>菜单内容
 
delphi下的/demos/activex/shellext/contmenu.dpr,你把它在delphi下打开,<br>register ,然后在文件管理器中找一个.dpr的文件,按右键就会知道它的原理和<br>winzip是一样的了。
 
关于多种环境注册右键弹出事件的方法,请按照以下对应关系:/HKEY_CLASSES_ROOT/Folder/Shell &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;任意文件夹<br>/HKEY_CLASSES_ROOT/Directory/Shell &nbsp; &nbsp; &nbsp; 任意目录<br>/HKEY_CLASSES_ROOT/Drive/Shell &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 任意驱动器<br>/HKEY_CLASSES_ROOT/*/Shell &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 任意文件<br>新建一个主键,并在主键下添加一个特定主键(command),修改command的键值指到你的应用程序。例如:<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest,将在Folder上按下右键时出现"AimTest"菜单<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest,并设定该主键的缺省值为"我的测试菜单",则将在Folder上按下右键时出现"我的测试菜单"菜单钮。<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest/command,并设定command"缺省"键值为"c:/tools/pse.exe" "%1",则将以Folder名为第一参数启动pse.exe。<br>&nbsp; &nbsp; * 注意command键值的双引号不可缺省另外:/HKEY_CLASSES_ROOT/Folder/Shellex<br>/HKEY_CLASSES_ROOT/Directory/Shellex/HKEY_CLASSES_ROOT/Drive/Shellex<br>/HKEY_CLASSES_ROOT/*/Shellex可以按应用程序在Registroy中的注册ID调用。这样可以调用.DLL和钩子函数。<br>但建议按第一种方法调用应用程序,因为注册一个ID实在麻烦。如果你的应用程序支持DDE,你可以参考<br>/HKEY_CLASSES_ROOT/Directory/Shell/Find键的设定来进行DDE设置。<br><br>以上是来自以前的,是:aimingoo的。
 
接受答案 谢谢相助
 
在程序中打开注册表<br>在KHEY_CLASSES_ROOT根键下创建<br>以文件扩展名为名称的主键<br>在其下创建shrllex子键<br>建立一个键值为程序ID的键<br>
 
后退
顶部