菜鸟问题:请问怎样做控件安装程序?(50分)

  • 主题发起人 主题发起人 delphi_xs
  • 开始时间 开始时间
D

delphi_xs

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位:
要做一个swflash.ocx的安装程序,为EXE,要求在安装的过程中不出现任何的窗体或
对话框,请问怎么做?谢谢啦
 
写一个没有窗体的程序,有其中用下面的方法注册控件

type
TRegisterAction = (raRegister, raUnRegister);

function RegisterOleFile(FileName: String
Action: TRegisterAction): Boolean;
type //注册 OLE/COM 的 Dll/Ocx 组件
TOleRegisterFunction = function(): HResult
//注册或卸载函数的原型
var
hLibHandle: THandle
//由LoadLibrary返回的DLL或OCX句柄
hFuncAddr: TFarProc
//DLL或OCX中的函数句柄,由GetProcAddress返回
RegFunc: TOleRegisterFunction
//注册或卸载函数指针
begin
Result:=False;
hLibHandle:=LoadLibrary(PChar(FileName))
//打开OLE/DCOM文件,返回的DLL或OCX句柄
try
if (hLibHandle>0) then //DLL或OCX句柄正确
begin //返回注册或卸载函数的指针
if Action=raRegister then //返回注册函数的指针
hFuncAddr:=GetProcAddress(hLibHandle,PChar('DllRegisterServer'))
else //返回卸载函数的指针
hFuncAddr:=GetProcAddress(hLibHandle,PChar('DllUnregisterServer'));

if (hFuncAddr<>Nil) then //注册或卸载函数存在
begin
RegFunc:=TOleRegisterFunction(hFuncAddr)
//获取操作函数的指针
if RegFunc()>=0 then //执行注册或卸载操作,返回值>=0表示执行成功
Result:=True;
end;
end;
finally
FreeLibrary(hLibHandle)
//关闭已打开的OLE/DCOM文件
end;
end;
 
多谢pihome大侠:)
正在消化……
 
(刚网络不通)
请问pihome 大侠:
function RegisterOleFile(FileName: String
Action: TRegisterAction): Boolean;
中参数FileName是我的SWFlash.OCX所在的路径吗?参数Action我应该怎么写?
 
SwFlash.ocx的完整路径,如
注册:
RegisterOleFile('C:/Winnt/System32/SwFlash.ocx',raRegister);
卸载:
RegisterOleFile('C:/Winnt/System32/SwFlash.ocx',raUnRegister);
 
非常感谢!我试试
 
我运行
RegisterOleFile('C:/Winnt/System32/SwFlash.ocx',raUnRegister);
卸载,原来用到shockwaveflash控件的程序不能运行了。
我再运行
RegisterOleFile('C:/Winnt/System32/SwFlash.ocx',raRegister);
注册,原来用到shockwaveflash控件的程序还是不能运行,请问为什么?
 
我找一台没有安装swflash.ocx的机器试试。
 
2000下OK了,请问pihome大侠,98、ME、XP下都可以注册吗?
 
任何能安装此OCX的Windows操作系统下
 
小弟在这里真心的谢谢你,分数不多,望笑纳:)
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
787
DelphiTeacher的专栏
D
D
回复
0
查看
645
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部