描述:
我写了一个Activex控件,这个Activex控件要启动几个.exe的进程,我把这个Activex控件与这几个.exe文件进行打包(.cab),然后配置一个inf文件,让用户通过浏览器下载这个Activex控件时,不知不觉的也把这几个.exe 下载到某个目录中去。如何配置这个inf文件以及如何把这几个文件打包。 谢谢先!!急!!1
解决方案1:
估计原因:
某些情况下,客户端计算机中可能已正确注册了需要的依赖 DLL,但它不在注册表所指定的目录中。这有可能是用户无意中移动了 DLL 的位置或从计算机中删除该文件后,忘记了相应地更新注册表项。
解决这个问题最简便的方法是:运行注册表编辑器 (Regedit.exe),然后搜索相关 DLL 名称,以确定丢失的相关 DLL 的预期位置和是否注册。如果注册了,注销后再下载.cab看是否能自动注册??
zhangshengyu(zhangshengyu):
我看了很多Activex打包的例子,里面的inf都是按照你这样写的。但我用同样的方式写了inf,里面有activex的ocx文件和所需的dll文件。可为什么总不能嵌入网页呢?下载成功,但无法注册。如果我不加那些dll文件,只留下ocx文件,把需要的dll文件先拷贝到指定目录下,结果就可以下载注册了。为什么?
你们那样将ocx和dll文件打到一个cab包中可以注册吗?我快绝望了。
刚才没看明白你的意思
[version]
signature="$CHINA$"
AdvancedINF=2.0
[Add.Code]
WebOffice.ocx=WebOffice.ocx
mfc70.dll=mfc70.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll
[mfc70.dll]
file-win32-x86=thiscab
FileVersion=7,0,9466,0
DestDir=11
RegisterServer=yes
[msvcrt.dll]
file-win32-x86=thiscab
FileVersion=6,1,9844,0
DestDir=11
RegisterServer=yes
[olepro32.dll]
file-win32-x86=thiscab
FileVersion=5,0,4522,0
DestDir=11
RegisterServer=yes
[WebOffice.ocx]
file-win32-x86=thiscab
clsid={05430EC0-69CA-437A-B1F9-4B78B8647BEA}
FileVersion=1,0,0,1
RegisterServer=yes
;
创建CAB文件
cabarc -s 6144 n WebOffice.cab msvcrt.dll msvcp70.dll msvcr70.dll mfc70.dll olepro32.dll ASYCFILT.DLL STDOLE2.TLB WebOffice.ocx WebOffice.inf