| 操作系统 办公 实用知识 设计 开发 WEB开发 移动开发 数据库 软件工程 网管 安全 管理 信息化 答疑 渠道 |
OCX控件注册问:我写的系统中带了OCX控件,当系统编译后发行时必须带上该OCX控件,但在用户的机子上必须注册该OCX控件才能使用,否则程序运行会出错,请问用什么方法注册该OCX控件?</P><P>答:提供以下几种方法供参考:
1、在Windows命令行或DOS下运行:regsvr32 ocxname.OCX 2、用Install Shield 做安装程序时,在里面选“Self-Registered”,安装程序将自动注册。 3、在PB程序中调用regsvr32实现,安装程序只需负责将OCX拷贝到相应路径下,这个路径PB程序必须可以得到,建议拷贝到Windows系统目录或者与执行文件同目录下。 具体代码: //首先定义API函数,如果OCX控件在与执行文件同目录下,使用GetCurrentDirectory函数;如果OCX控件放在系统目录下,使用GetSystemDirectory函数。 Function ulong GetCurrentDirectory(ulong nBufferLength,ref string lpBuffer) Library "kernel32.dll" Alias for "GetCurrentDirectoryA" Function uint GetSystemDirectory(ref string lpBuffer,uint uSize) Library "kernel32.dll" Alias for "GetSystemDirectoryA" //假设OCX文件在Windows系统目录下,在PB应用(Application)的Open事件编写如下代码: string ls_PathName,ls_Command ulong ll_RequiredBufferSize ls_PathName = Space(255) ll_RequiredBufferSize = GetSystemDirectory(ls_PathName,255) IF ll_RequiredBufferSize=0 or ll_RequiredBufferSize>255 THEN //报错信息 else ls_Command = "Regsvr32 /s " + "~"" + ls_PathName + "\Myocx.ocx" + "~"" Run (ls_Command) … End if Regsvr32后面的"/s"执行参数是为了隐藏注册成功消息框。 (此种方法由张涛提供) 4、在PB应用程序中注册: 函数声明: Function long DllRegisterServer() Library "ocxname.OCX" 调用: LONG ll_RC ll_RC = DllRegisterServer()
今日推荐
|
重点推荐
领军企业技术文库
+更多领军技术文库
最新专题
电子杂志订阅
| ||||||||