如何将免费的 .ocx 控件打包在D5的执行文件中?急!(30分)

  • 主题发起人 主题发起人 jeffreylaw
  • 开始时间 开始时间
J

jeffreylaw

Unregistered / Unconfirmed
GUEST, unregistred user!
本人想将免费的 .ocx 控件打包在一个D5的执行程序中,即不需要
手动COPY .OCX文件到WINDOWS中,使用一个D5的EXE就能完全调用
封装在D5内部的.ocx。
 
是使用installshield for delphi吗?加一个group,然后制订它的路径就行了
 
行吗???只能安装到系统目录,再注册才能用吧。
 
agree bsqf
ise can only install and regist the ocx automatically
but not package it into your exe.

how?no way
 
先找到OCX要用的DLL等相关文件,再在dpr文件中自己写文件拷贝和注册OCX。可以用
Winexec来运行Regsvr32.exe XXXX.OCX来注册,用Regsvr32.exe XXXX.OCX /u来取消注册
 
单纯采用一个EXE文件就解决这个问题好象不行。
解决办法当然是制作安装程序,把.ocx文件打包到安装程序中,
并在安装过程中执行Regsvr32 你的.ocx文件名
 
封装成VCL也许可以。
 
CathyEagle,谢谢你的邮件,很高兴在网上认识你这样好的朋友,你对我
帮助的确不少。你说的封装成VCL?怎么做?我没明白你的意思
 
自己做进一个资源文件, 到时候拷贝出来不就可以了?
 
可以使用Regsvr32.exe,只不过你要清楚这个OCX用了哪些文件(一般是DLL)。
我试过,没问题,不用写SETUP。其实,要写SETUP你还是要知道使用了哪些文件。对不对?
 
我这个OCX文件很小,还不到60K并且不调用其它任何DLL,我只想将这个OCX文件打包
在EXE文件中,这样COPY给朋友不用告诉他们怎样去注册这个OCX。

那位有高招?
 
先将OCX打包到资源中,然后程序运行时先判断OCX是否已经扩展,如果还没有扩展的话,
那么则选从资源中扩展此OCX,然后自己再写一段代码,或者调用OCX注册程序对OCX进行
注册。
 
to :jeffreylaw
真正解决后教我一下.
wumengs@sina.com.cn
 
附加功能 将问题提前
 
{$r ocx.res}
procedure TForm1.FormCreate(Sender: TObject);
var
ocx:Tresourcestream;
begin
if not fileexists('vcf132.ocx') then
begin
ocx:=Tresourcestream.Create(HInstance,'activex','ocx');
ocx.SaveToFile('vcf132.ocx');
ocx.free;
end;
然后用WINEXEC调用REGSVR32注册即可
end;
 
OCX.RC
内容如下
activex ocx vcf132.ocx
 
如同arm所言,把ocx文件保存在资源文件中,编译到可执行文件,运行时写到硬盘上,注册使用。
理论上没有办法和在一起,因为和在的ocx失去了自由升级的优点
 
Install Shield Professional 可以把 File Group 设成 Self Registered.
 
后退
顶部