关于winzip?(100分)

  • 主题发起人 主题发起人 aqudc
  • 开始时间 开始时间
A

aqudc

Unregistered / Unconfirmed
GUEST, unregistred user!
有一些安装程序如setup.exe,用右键点击后弹出的菜单并不象<br>普通情况下有‘add to zip’项,而是有‘extract to ...’项<br>,同样都是exe文件,winzip是如何判断这是一个自解压的安装<br>文件而不是普通的exe文件。
 
看文件名是不是setup.exe呀!
 
他大可以在自己的压缩文件中加入标志, 检查一下<br>不久知道了吗?
 
但是不是setup.exe的自解压文件也一样。
 
对! 类似的还有"Open with winzip..."<br>他居然可以在菜单弹出前判断该exe文件是不是winzip的自解压文件!
 
还有人知道吗?
 
难道在菜单弹出时就把文件名传给winzip了?<br>还有就是有个软件ACDSee公司出的,当你在图片文件点右键时,图片会显示在菜单<br>里,非常方便.原理呢?<br>
 
在菜单还没生成前,IShellExtInit.Initialize就已经得到文件名了。
 
&nbsp;问题已经得到解决: {B-)<br>&nbsp; 请参考Delphi4得Demo({$DELPHI}/Demos/ActiveX/qregister.dpr)<br>&nbsp; 先写一(.dll),实现类似qregister得程序,但它对所有文件都起作用。在<br>SellExtInit.Initialize中调用QragQueryFile得到文件名,判断是否是.ZIP,<br>.GZ,.ARJ......,如果是,则在鼠标右键查入'Open with winzip...'之类<br>得菜单。如果是.EXE,则读文件头XX比特,判断文件头中是否有铁定标志。<br><br>&nbsp; 各位可以试一试将不同得文件名改为.zip,.exe,.txt等,你会发现其实是文本文件,<br>改为.zip,它照样会谈处'with winzip...',如果是.ZIP改为.EXE,Winzip将它认为<br>是Self_Extracting File,如果将.ZIP改为其他文件后缀,winzip则会将其认为<br>普通文件,相应菜单变为“add to zip..." 等。<br>&nbsp; 具体编程,可以在Delphi4得Demos/ActiveX/qregister.dpr稍作修改即可.
 
&nbsp;aqudc: &nbsp; 是不是该结束问题了! &nbsp; &nbsp; &nbsp;{B-)
 
简单的办法:自己在程序里加入有特征的标志不就行了?<br>例如一个string: "I'm winzip"<br>在程序里不一定要用到它,但是可以监测的到.
 
多人接受答案了。
 
后退
顶部