关于控件注册和使用许可问题的解决办法
关于控件注册和使用许可问题的解决办法
作者: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目录下的注册信息都导出来,然后再导入到目标机器上,既省事,还不怕有漏网之鱼 :)呵呵,大家都明白了吧?
初次写文章,错误在所难免,欢迎各位指正。还有,本文仅供学习交流使用,希望不会侵犯微软的版权。
关于控件注册和使用许可问题的解决办法相关推荐
- 2.0版本的日历控件在ie8显示不全的解决办法
如果用 2.1版本的话 IE8下显示如右图 但在ie6.ie7和chrome等浏览器下显示都正常. 解决方法是: 重写一下DateField控件 1 /* 2011-03-04 cx 2 修正日期控件 ...
- 控件不响应点击事件解决办法
以前,我们判断控件是否被点击是根据它的坐标及尺寸判断的. 不过,在WP/SL中,是否被点击了还要增加一个判断依据,那就是这里是否有内容. 所以,有时我们的控件死活就是不响应点击事件,原因就在这里,点击 ...
- C# WinForm 线程间操作无效: 从不是创建控件的线程访问它的解决办法
.net2后是不能跨线程访问控件的.,窗体上的控件是当前线程创建的,当用户异步执行一个方法:在该方法中给窗体上的控件赋值,记住:当执行一个异步委托的时候,其实 就是开了一个线程去执行那个方法,这样就会 ...
- GeckoFx v45浏览器控件实现文件下载出现异常的解决办法
最近用到了GeckoFx的下载功能, 从网络上找到了一些代码复制运行, 发现有时候会报COM调用错误的异常, 经查找发现是GeckoFx的接口发生更新了, 之前的接口已经弃用, 下面贴上经测试可用代码 ...
- C# winfrom中Flash播放使用axShockwaveFlash控件设置透明XP出现白色背景解决办法,仿QQ魔法表情效果...
//播放时 图片周围有锯齿白边出现 反锯齿处理暂无解决办法. 如有大神 请给我留言 新Form AllowDrop True 引用using System.IO; 拖1个Button p ...
- VC++ OCX 控件注册
转自:http://www.cctry.com/thread-5334-1-1.html 方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regs ...
- 新发布AlbumOnNet 、dotnetCharting控件注册资料
新发布AlbumOnNet .dotnetCharting控件注册资料,见http://www.cnblogs.com/midea0978/category/13271.html
- VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到 现在介绍一下使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: ...
- C# 获取COM控件注册状态,注册以及反注册COM控件
每一个COM控件都有一个全球唯一的标识,CoClass的GUID,简称CLSID: 每一个COM控件注册后,都会在注册表中的 "HKEY_CLASSES_ROOT\CLSID"键下 ...
最新文章
- 实验三 JSP应用开发进阶
- 蛋白Ramachandran(拉氏图、拉曼图)的绘制和可视化
- 关于 npm 中 lru-cache 之 maxAge 盲点 源码分析
- 提高电子商务转化率的关键因素
- 特定SQL的查询优化
- ES2017 异步函数async/await
- oracle声明number变量,oracle – PL / SQL:如何声明会话变量?
- Java面试,如何在短时间内做突击
- 像程序员一样思考_如何像程序员一样思考-解决问题的经验教训
- LeetCode 1696. 跳跃游戏 VI(优先队列 / 单调队列)
- 恋爱记v1.0源码-在线生成表白页
- 微信APP支付(基于Java实现微信APP支付)
- 在Winform的DataGridView的单元格中同时显示文本和图标,以及树形结构的示例
- 【软件测试】你的简历出现这些问题?没人要也是有原因的
- 约瑟夫问题的数学方法
- nodejs语法问题
- SQL注入攻击原理与几种防御方式
- 华为路由器交换机基本配置方法
- (CVPR_2021) Center-based 3D Object Detection and Tracking
- iNodeClient 校园网客户端在linux环境下的使用方法
热门文章
- html鼠标放上虚化背景图片,如何将网页CSS背景图高斯模糊且全屏显示
- ios 渐变透明背景_利用PS绘制唯美梦幻多边形背景图
- AI工具是帮手还是助手:
- 让老电脑焕发青春:Acer(宏碁)ASPIRE 4710G安装UbuntuKylin(优麒麟),使用Gparted调整分区大小
- [1106]python bezier(贝塞尔)曲线
- AI 入行那些事儿(13)人工智能的三类技术岗位
- Halcon图像修复
- 【Micro Project】怎样设置自动安排的起始时间
- android 卡联系人导入iphone,苹果手机怎么把通讯录导入新手机sim卡
- 教你怎么在 Mac 电脑上进行语音实时输入