操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

OCX控件注册

2006-9-30 网友评论 0 条 点击进入论坛
问:我写的系统中带了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()
已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46430 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail