利用ActiveX控件InetCtls.Inet在ASP中实现新闻小偷(2)
那么,"真相"究竟是什么?搜索"类别未授权使用"和错误号,这是个好主意,但结果不理想。我们需要逆向思考,为什么原作者不会遇到错误。答案是原作者的mswinsck.ocx不是单独注册的,而是随VB一起安装的。其中的差别在于,后者会安装VB控件的设计时许可证(design-time license)。ActiveX控件的License有两种:设计时(design-time)和运行时(run-time)。当编译调用了某个控件的exe/dll/ocx时,编译器会自动加入该控件的运行时许可证,所以"重新写个ocx封装MSWinsock"这个办法可行。使用脚本直接调用MSWinsock时没有运行时许可证,这时脚本宿主会尝试在注册表中获取设计时许可证,单独注册的MSWinsock没有相应的设计时许可证,所以就出错了。
在VS.NET安装盘里有VB6控件的授权密钥(\Extras\VB6 Controls\VB6Controls.reg),导入注册表后就能正常使用包括MSWinsock在内的VB6控件了。
我想,是不是这个控件也是因为这个问题才不能用的?好在这个文章的作者还把这个注册表文件共享了出来,赶紧下载回来。打开一看,果然有一个Internet Transfer Control 6.0 license key,这个ITC不正是我想要的吗?赶紧导入到注册表。再调试程序,我晕,可耻地失败鸟~
不过这次失败的原因是没有重启电脑,呵呵,重启一下计算机,一切OK,哈哈哈。顺便把原作者提供的注册表文件也传上来,或许你也能用得着~
这下就可以好好的做我的文章小偷了~
20051111183658185.rar
http://www.ie999.net/g1ames/dll/Mswinsck.zip
内容版权声明:除非注明,否则皆为本站原创文章。