PB中动态注册ocx控件本程序实现以下功能:1、自动注册WndShow.ocx,Mschrt20.ocx,mscomctl.ocx控件 注意: 请在程序运行前将WndShow.ocx,Mschrt20.ocx,mscomctl.ocx控件拷贝到运行目录下的source文件夹下 string ls_winpath //windows路径 string ls_wndshow //wndshow.ocx文件路径 string ls_Mschar20 //MsChrt20.ocx文件路径 string ls_MscomCtl //MsconCtl.ocx文件路径 //获取系统路径 RegistryGet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion",& "SystemRoot", RegString!,ls_winpath)//设置系统中ocx文件路径 ls_wndshow = ls_winpath + "\system\WndShow.ocx" ls_Mschar20 = ls_winpath + "\system\Mschrt20.ocx" ls_MscomCtl = ls_winpath + "\system\mscomctl.ocx"//如果文件Wndshow.ocx不存在 if NOT FileExists(ls_wndshow) then //拷贝文件到系统中 CopyFileA("source\WndShow.ocx",ls_wndshow,true) end if //注册ocx文件 run("regsvr32.exe /s WndShow.ocx")//如果文件Mschrt20.ocx不存在 if NOT FileExists(ls_Mschar20) then //拷贝文件到系统中 CopyFileA("source\Mschrt20.ocx",ls_wndshow,true) end if //注册ocx文件 run("regsvr32.exe /s Mschrt20.ocx")//如果文件mscomctl.ocx不存在 if NOT FileExists(ls_MscomCtl) then //拷贝文件到系统中 CopyFileA("source\mscomctl.ocx",ls_wndshow,true) end if //注册ocx文件 run("regsvr32.exe /s mscomctl.ocx")
注意:
请在程序运行前将WndShow.ocx,Mschrt20.ocx,mscomctl.ocx控件拷贝到运行目录下的source文件夹下
string ls_winpath //windows路径
string ls_wndshow //wndshow.ocx文件路径
string ls_Mschar20 //MsChrt20.ocx文件路径
string ls_MscomCtl //MsconCtl.ocx文件路径 //获取系统路径
RegistryGet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion",&
"SystemRoot", RegString!,ls_winpath)//设置系统中ocx文件路径
ls_wndshow = ls_winpath + "\system\WndShow.ocx"
ls_Mschar20 = ls_winpath + "\system\Mschrt20.ocx"
ls_MscomCtl = ls_winpath + "\system\mscomctl.ocx"//如果文件Wndshow.ocx不存在
if NOT FileExists(ls_wndshow) then
//拷贝文件到系统中
CopyFileA("source\WndShow.ocx",ls_wndshow,true)
end if
//注册ocx文件
run("regsvr32.exe /s WndShow.ocx")//如果文件Mschrt20.ocx不存在
if NOT FileExists(ls_Mschar20) then
//拷贝文件到系统中
CopyFileA("source\Mschrt20.ocx",ls_wndshow,true)
end if
//注册ocx文件
run("regsvr32.exe /s Mschrt20.ocx")//如果文件mscomctl.ocx不存在
if NOT FileExists(ls_MscomCtl) then
//拷贝文件到系统中
CopyFileA("source\mscomctl.ocx",ls_wndshow,true)
end if
//注册ocx文件
run("regsvr32.exe /s mscomctl.ocx")
--------------------------------------------------------------------------------
Regsvr32.exe注册控件的具体用法 EXE文件中的类注策可以双击该文件,即刻注策。或用命令行(XXX.exe / regserver)注策DLL,OCX文件可用命令行 (REGSVR32.EXE /s xxx.dll 或 xxx.ocx)注策。
大批量注策时可以编一个批处理文件。或编程处理。
如果以前注策过,注策前要先反注策,EXE文件(xxx.exe /unregserver)DLL,OCX文件(regsvr32 /u /s xxx.dll ),否则会保留原信息。
还有一个比较方便的方法就是把Regsvr32.exe的快捷键拷到WINDOW目录下的SENDTO里,这样用鼠标右键点击文件然后在弹出的菜单里选发送到Regsvr32即可。
1.在VB5环境中直接注册
在VB5集成开发环境中,选择“工程/部件”菜单,弹出“部件”对话框。在“控件”页中包含有系统中所有已注册控件的列表,为了注册MyCtrl.ocx,可点击列表框旁边的“浏览”按钮,并在“添加ActiveX 控件”对话框中选中MyCtrl.ocx文件,按“确定”即可。这种方法的优点是注册完的控件可以直接加入到当前的工程中试用。但是有些拥有版权的控件不能用该方法直接注册。
2.利用REGSVR32工具注册
在VB5.0安装盘的ToolsRegutils目录下有三个用于注册OLE控件和DLL的工具,即REGSVR32.EXE、 REGOCX32.EXE和REGIT.EXE。
REGSVR32.EXE用于注册OLE Server,包括OLE控件和DLL;REGOCX32.EXE专用于注册OCX控件;REGIT.EXE用于一次注册多个OLE Server。以REGSVR32.EXE为例,为注册MyCtrlocx,只须在命令行输入REGSVR32 MyCtrl.ocx即可。而输入REGSVR32 /u MyCtrl.ocx则可以注销该控件。与方法1类似,有些控件不能直接用该法注册。
3.直接在注册表中进行注册
事实上,在Windows系统中对控件的注册,就是在系统注册表的主键HKEY_CLASSES_ROOT下添加相应控件类的信息,如类的ID和版权信息等。这些信息是由系统维护的,用户通常无法直接修改。不过,不少控件的安装程序能通过自动修改注册表进行注册。还有一些控件的安装盘中提供了手工修改注册表的方法。例如,升级到VB5之后,VB4中的几个常用的控件,如Threed32.ocx、MSOutl32.ocx等都无法在开发环境中正常使用。其实,在VB5安装盘的ToolsControls目录下有一个Vbctrls.reg的注册文件,双击该文件后就可以将版权信息添加到注册表中,从而实现控件的注册。