用VB6编写Active EXE时的注册过程

在VB中编写ActiveX EXE时,调试运行时,VB自动把注册信息临时性的写入到注册表中.
这个位置在HKEY_CLASSES_ROOT\VBKeySave5或
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VBKeySave5中,里面的信息估计只
有VB能懂
示例如下:
VBKeySave5
    0000004b.S01381e94
        DeleteCL
            {EB21B48D-43F3-401D-BFB8-A0C95E743A37}
        DeleteIF
            {又一个老长的UUID}
        DeletePI
            Project1.Class1
    0000004b.T0000004
        DeleteTI
            {再一个不作用未详的UUID}
这样其它组件能生成该Active EXE中的对象.当调试终止时,VB又自动把注册表中的信
息删除了.当ActiveX EXE编译完成时,VB会自动注册,当在目标机器上第一次运行时,
ActiveX EXE自动也将自动注册.当注册后,把该Active EXE文件移动到其他目录位置运行时,
Active EXE并不会"修正"注册表中的注册信息(InprocServer32键中所指的原注册位置)
但当该Active EXE再次运行时,其它的组件却能生成该ActiveX EXE中的对象.对于Active EXE
来说,InprocServer32的意义是当ActiveXEXE没有运行时,客户调用CreateObject能自动找到
该ActiveX EXE组件并加载它以生成对象.

任何ActiveX组件注册时的写入下列信息:
向HKEY_CLASSES_ROOT\CLSID和HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
主键下写入该Active组件中每个COM类的信息,每个类
都有一个CLSID.如:

HKEY_CLASSES_ROOT\CLSID(或HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID)
    {EB21B48D-43F3-401D-BFB8-A0C95E743A37}(这是组件类的标识ID,即CLSID)
        Implemented Categories
            {40FC6ED5-2438-11CF-A3DB-080036F12502}
        LocalServer32(在哪个文件中实现的)
        ProgID(创建该类对象时所用的"编程名称",如Project1.Class1)
        Programmable(是否可编程)
        TypeLib(类型库ID,也是一个全局唯一标识符)
         VERSION(版本)

HKEY_CLASSES_ROOT(或HKEY_LOCAL_MACHINE\SOFTWARE\Classes)
    Project1.Class1
        Clsid(即上述的{EB21B48D-43F3-401D-BFB8-A0C95E743A37})

在编译并注册后,还在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib和
HKEY_CLASSES_ROOT\TypeLib下写入代表该ActiveX EXE组件的类型库标识(UUID)

转载于:https://www.cnblogs.com/huangpin/archive/2008/03/22/1118118.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值