MSWINSCK.OCX 控件在XP下可以 使用,但win7 出现错误

MSWINSCK.OCX 控件在我做的B/S结构里的充当着发送消息的作用,现在在xp系统下ie浏览器中可以使用,在win7上,注册成功了,但是在win7的ie浏览器上死活不好用,ie设置的activex控件都已经允许了,但是在ie的加载项里并没有加载这个控件,求大神指教?这到底是什么问题?

测试代码如下:




classid="clsid:248DD896-BB45-11CF-9ABC-0080C7E7B78D"
codebase="MSWINSCK.OCX"
width=10%
height=10%
align=center
hspace=0
vspace=0>
document.writeln("IP:"+winsck.LocalIP);


浏览器版本不一样,对OCX控件安全要求不同,你的控件有没有签名等,IE后面版本对控件检查比较严格。

如何没有签名怎么办?

mswinsck 加载失败

最近使用nettools软件时报错:

一直没想到怎么解决,尝试regsvr32 mswinsck.ocx失败!于是百度(以后打死不用百度了,第一条信息就是病毒,就那个维金viking,害我杀了一下午,具体见<消灭viking>)

修好系统后.上网用google一搜,很快就找到了修复方法!

方法如下:

下载一个新版本的mswinsck.ocx,导入VB6Controls.reg注册文件就行了.

此版本mswinsck.ocx信息:

文件名:mswinsck.ocx

大小:106 KB (109,248 字节)

修改时间:2000年12月6日 星期三, 8:00:00

版本:6.00.8988

备注:September 14, 2000

vb6controls.reg 内容:

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/72E67120-5959-11cf-91F6-C2863C385E30 = ibcbbbebqbdbciebmcobmbhifcmciibblgmf

// 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

参考资料:

http://zzzevazzz.bokee.com/ 中的《关于VBS调用MSWinsock控件 》一文:

Windows脚本可以调用MSWinsock控件获得比较强大的网络访问能力,但那个106KB的mswinsck.ocx(V6.0.89.88)不是系统自带的,这使得该控件的实用性大打折扣。而且,脚本要调用MSWinsock还必须克服一个困难。

ActiveX控件的License有两种:设计时(design-time)和运行时(run-time)。当编译调用了某个控件的exe/dll/ocx时,编译器会自动加入该控件的运行时许可证,所以"重新写个ocx封装MSWinsock"这个办法可行。使用脚本直接调用MSWinsock时没有运行时许可证,这时脚本宿主会尝试在注册表中获取设计时许可证,单独注册的MSWinsock没有相应的设计时许可证,所以就出错了。
在VS.NET安装盘里有VB6控件的授权密钥(/Extras/VB6 Controls/VB6Controls.reg),导入注册表后就能正常使用包括MSWinsock在内的VB6控件了。

参考

http://blog.csdn.net/hanxin2008/article/details/1320606

是的,这是安全特性造成的,不过新版的ie可以直接使用websocket,不需要socket控件了。