关于控件注册和使用许可问题的解决办法

作者:catclaw2000

  鉴于前一段时间受困于微软控件的授权问题,而且互联网上也很难找到问题的解决方案,这两天论坛中也不停有网友在问相类似的问题,特撰写此文,以飨VCKBASE各位网友。
  大家都知道,对于普通的OCX控件,我们在发布时,使用安装软件拷贝到目标机器上然后再注册一下(或者手工拷贝然后用Regsvr32注册)就可以了 。
  但是对于微软提供的一些控件,比如 Microsoft ADO Control,Microsoft Datagrid Control等等,常常发现,在开发的机器上使用的好好的 ,但使用正常的发布流程,发布到目标机器上,就会出现“没有注册类别”的提示 ,软件无法使用等等问题。
  究其原因,在于微软为了防止其软件被非法发布,所以增加了许可机制(license);按理说,只有开发环境才需要许可,而在目标码的环境中,应用程序可以正常使用的,只不过不能被其他的开发工具打开;为什么会与微软原先的想法违背,我就不得而知了。让咱们进入正题,说说如何解决这个问题。
  首先,必须弄清楚许可信息的存储位置,告诉你,就在HKEY_CLASSES_ROOT/Licenses目录下。   接下来,需要知道哪个控件使用的是什么注册信息,在vs.net安装盘的一个目录Extras/VB6 Controls下,有一个注册文件vb6controls.reg,记录了VB6的大多数控件 的许可信息,下面是此文件的内容:

REGEDIT
HKEY_CLASSES_ROOT/Licenses = Licensing: Copying the keys may be a violation of established copyrights.

// Masked Edit Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/BC96F860-9928-11cf-8AFA-00AA00C00905 = mmimfflflmqmlfffrlnmofhfkgrlmmfmqkqj

// Chart Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT/Licenses/12B142A4-BD51-11d1-8C08-0000F8754DA1 = aadhgafabafajhchnbchehfambfbbachmfmb

// Common Dialog Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/4D553650-6ABE-11cf-8ADB-00AA00C00905 = gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj

// ADO Data Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT/Licenses/C4145310-469C-11d1-B182-00A0C922E820 = konhqhioohihphkouimonhqhvnwiqhhhnjti

// Common Controls-3 6.0 license key
HKEY_CLASSES_ROOT/Licenses/38911DA0-E448-11D0-84A3-00DD01104159 = mcpckchcdchjcjcclidcgcgchdqdcjhcojpd

// Windows Common Controls-2 5.0 (SP2) license key
HKEY_CLASSES_ROOT/Licenses/9E799BF1-8817-11cf-958F-0020AFC28C3B = uqpqnqkjujkjjjjqwktjrjkjtkupsjnjtoun

// Windows Common Controls license key
HKEY_CLASSES_ROOT/Licenses/57CBF9E0-6AA7-11cf-8ADB-00AA00C00905 = aahakhchghkhfhaamghhbhbhkbpgfhahlfle

// Data Bound Grid Control 5.0(SP3) license key
HKEY_CLASSES_ROOT/Licenses/556C75F1-EFBC-11CF-B9F3-00A0247033C4 = xybiedobrqsprbijaegcbislrsiucfjdhisl

// Data Bound List Controls 6.0 license key
HKEY_CLASSES_ROOT/Licenses/096EFC40-6ABF-11cf-850C-08002B30345D = knsgigmnmngnmnigthmgpninrmumhgkgrlrk

// Internet Transfer Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/78E1BDD1-9941-11cf-9756-00AA00C00908 = yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun

// Multimedia Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/B1EFCCF0-6AC1-11cf-8ADB-00AA00C00905 = qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun

// Chart Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/7C35CA30-D112-11cf-8E72-00A0C90F26F8 = whmhmhohmhiorhkouimhihihwiwinhlosmsl

// Windows Common Controls-2 6.0 license key
HKEY_CLASSES_ROOT/Licenses/4F86BADF-9F77-11d1-B1B7-0000F8753F5D = iplpwpnippopupiivjrioppisjsjlpiiokuj

// Windows Common Controls 6.0 license key
HKEY_CLASSES_ROOT/Licenses/ED4B87C4-9F76-11d1-8BF7-0000F8754DA1 = knlggnmntgggrninthpgmnngrhqhnnjnslsh

// Comm Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/4250E830-6AC2-11cf-8ADB-00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

// DataGrid Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT/Licenses/CDE57A55-8B86-11D0-b3C6-00A0C90AEA82 = ekpkhddkjkekpdjkqemkfkldoeoefkfdjfqe

// DataList Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT/Licenses/A133F000-CCB0-11d0-A316-00AA00688B10 = cibbcimbpihbbbbbnhdbeidiocmcbbdbgdoc

// DBWin license key
HKEY_CLASSES_ROOT/Licenses/D015B071-D2ED-11d0-A31A-00AA00688B10 = gjdcfjpcmjicjcdcoihcechjlioiccechepd

// MSDBRPT license key
HKEY_CLASSES_ROOT/Licenses/9DF1A470-BA8E-11D0-849C-00A0C90DC8A9 = cchcqjejhcgcqcfjpdfcdjkckiqikchcojpd

// FlexGrid Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/1F3D5522-3F42-11d1-B2FA-00A0C908FB55 = gcfjdjecpchcncdjpdejijgcrdoijjfcieod

// MAPI Controls 6.0 license key
HKEY_CLASSES_ROOT/Licenses/899B3E80-6AC6-11cf-8ADB-00AA00C00905 = wjsjjjlqmjpjrjjjvpqqkqmqukypoqjquoun

// MSRDO 2.0 license key
HKEY_CLASSES_ROOT/Licenses/B1692F60-23B0-11D0-8E95-00A0C90F26F8 = mjjjccncgjijrcfjpdfjfcejpdkdkcgjojpd

// RemoteData Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/43478d75-78e0-11cf-8e78-00a0d100038e = imshohohphlmnhimuinmphmmuiminhlmsmsl

// Windowless Controls 6.0 license key
HKEY_CLASSES_ROOT/Licenses/80E80EF0-DBBE-11D0-BCE2-00A0C90DCA10 = qijimitpmpnpxplpvjnikpkpqoxjmpkpoivj

// PictureClip Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/6FB38640-6AC7-11cf-8ADB-00AA00C00905 = gdjkokgdldikhdddpjkkekgknesjikdkoioh

// Rich TextBox Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/DC4D7920-6AC8-11cf-8ADB-00AA00C00905 = iokouhloohrojhhhtnooiokomiwnmohosmsl

// Sheridan Tab Control license key
HKEY_CLASSES_ROOT/Licenses/190B7910-992A-11cf-8AFA-00AA00C00905 = gclclcejjcmjdcccoikjlcecoioijjcjnhng

// SysInfo Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/E32E2733-1BC5-11d0-B8C3-00A0C90DCA10 = kmhfimlflmmfpffmsgfmhmimngtghmoflhsg

// Winsock Control 6.0 license key
HKEY_CLASSES_ROOT/Licenses/2c49f800-c2dd-11cf-9ad6-0080c7e7b78d = mlrljgrlhltlngjlthrligklpkrhllglqlrk
  通常我们只要把这个文件导入到目标机器的注册表,即可解决困扰我们的控件授权问题了。不过在我的使用过程中发现有两个问题:

这里面的注释信息不准确,即可能标注是某个控件的许可,但用这个许可根本不行,不知道是微软故意的还是弄错了,比如 FlexGrid Control 6.0 的 许可应该是:HKEY_CLASSES_ROOT/Licenses/72E67120-5959-11cf-91F6-C2863C385E30=ibcbbbebqbdbciebmcobmbhifcmciibblgmf
许可信息不全,也就是说, 有一些控件的许可信息在这个文件里根本没有;
  那我们怎么办呢?苦恼ing...。一拍脑袋,有了,既然我们已经知道其在注册表中的位置、并且在开发的机器上使正常的,何不直接从开发机器上把整个licenses目录下的注册信息都导出来,然后再导入到目标机器上,既省事,还不怕有漏网之鱼 :)呵呵,大家都明白了吧?
  初次写文章,错误在所难免,欢迎各位指正。还有,本文仅供学习交流使用,希望不会侵犯微软的版权。

关于控件注册和使用许可问题的解决办法相关推荐

  1. 2.0版本的日历控件在ie8显示不全的解决办法

    如果用 2.1版本的话 IE8下显示如右图 但在ie6.ie7和chrome等浏览器下显示都正常. 解决方法是: 重写一下DateField控件 1 /* 2011-03-04 cx 2 修正日期控件 ...

  2. 控件不响应点击事件解决办法

    以前,我们判断控件是否被点击是根据它的坐标及尺寸判断的. 不过,在WP/SL中,是否被点击了还要增加一个判断依据,那就是这里是否有内容. 所以,有时我们的控件死活就是不响应点击事件,原因就在这里,点击 ...

  3. C# WinForm 线程间操作无效: 从不是创建控件的线程访问它的解决办法

    .net2后是不能跨线程访问控件的.,窗体上的控件是当前线程创建的,当用户异步执行一个方法:在该方法中给窗体上的控件赋值,记住:当执行一个异步委托的时候,其实 就是开了一个线程去执行那个方法,这样就会 ...

  4. GeckoFx v45浏览器控件实现文件下载出现异常的解决办法

    最近用到了GeckoFx的下载功能, 从网络上找到了一些代码复制运行, 发现有时候会报COM调用错误的异常, 经查找发现是GeckoFx的接口发生更新了, 之前的接口已经弃用, 下面贴上经测试可用代码 ...

  5. C# winfrom中Flash播放使用axShockwaveFlash控件设置透明XP出现白色背景解决办法,仿QQ魔法表情效果...

    //播放时  图片周围有锯齿白边出现    反锯齿处理暂无解决办法. 如有大神 请给我留言 新Form    AllowDrop True 引用using System.IO; 拖1个Button p ...

  6. VC++ OCX 控件注册

    转自:http://www.cctry.com/thread-5334-1-1.html 方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regs ...

  7. 新发布AlbumOnNet 、dotnetCharting控件注册资料

    新发布AlbumOnNet .dotnetCharting控件注册资料,见http://www.cnblogs.com/midea0978/category/13271.html

  8. VB控件注册 - 利用资源文件将dll、ocx打包进exe文件

    很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到     现在介绍一下使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: ...

  9. C# 获取COM控件注册状态,注册以及反注册COM控件

    每一个COM控件都有一个全球唯一的标识,CoClass的GUID,简称CLSID: 每一个COM控件注册后,都会在注册表中的 "HKEY_CLASSES_ROOT\CLSID"键下 ...

最新文章

  1. 实验三 JSP应用开发进阶
  2. 蛋白Ramachandran(拉氏图、拉曼图)的绘制和可视化
  3. 关于 npm 中 lru-cache 之 maxAge 盲点 源码分析
  4. 提高电子商务转化率的关键因素
  5. 特定SQL的查询优化
  6. ES2017 异步函数async/await
  7. oracle声明number变量,oracle – PL / SQL:如何声明会话变量?
  8. Java面试,如何在短时间内做突击
  9. 像程序员一样思考_如何像程序员一样思考-解决问题的经验教训
  10. LeetCode 1696. 跳跃游戏 VI(优先队列 / 单调队列)
  11. 恋爱记v1.0源码-在线生成表白页
  12. 微信APP支付(基于Java实现微信APP支付)
  13. 在Winform的DataGridView的单元格中同时显示文本和图标,以及树形结构的示例
  14. 【软件测试】你的简历出现这些问题?没人要也是有原因的
  15. 约瑟夫问题的数学方法
  16. nodejs语法问题
  17. SQL注入攻击原理与几种防御方式
  18. 华为路由器交换机基本配置方法
  19. (CVPR_2021) Center-based 3D Object Detection and Tracking
  20. iNodeClient 校园网客户端在linux环境下的使用方法

热门文章

  1. html鼠标放上虚化背景图片,如何将网页CSS背景图高斯模糊且全屏显示
  2. ios 渐变透明背景_利用PS绘制唯美梦幻多边形背景图
  3. AI工具是帮手还是助手:
  4. 让老电脑焕发青春:Acer(宏碁)ASPIRE 4710G安装UbuntuKylin(优麒麟),使用Gparted调整分区大小
  5. [1106]python bezier(贝塞尔)曲线
  6. AI 入行那些事儿(13)人工智能的三类技术岗位
  7. Halcon图像修复
  8. 【Micro Project】怎样设置自动安排的起始时间
  9. android 卡联系人导入iphone,苹果手机怎么把通讯录导入新手机sim卡
  10. 教你怎么在 Mac 电脑上进行语音实时输入