Monthly Archives: October 2010

可以上网但是不可以QQ的解决办法

今天早上一来, 就发现skype没办法登录了, 不过平时习惯于使用firefox, 发现网页还是能正常看的, 但是使用IE时发现IE也是上不了网的, QQ自然也是登录不了的, 总体的症状总结是:
firefox可以浏览网页, 但是不可以下载;
IE无法上网;
QQ, Skype等软件不可以上;
FTP无法登录;
网络连接正常;
ping可以ping通.

找了半天终于在国外一个网站上找到了解决方法, 命令行下输入:
[code]netsh winsock reset catalog
[/code]
然后重起电脑, 就一切正常了. 英文原文的解释是:

This issue may occur if the Winsock registry keys are damaged or corrupted. Try this: Open the command prompt and type –
[code]
netsh winsock reset catalog
[/code]
This command resets the Winsock catalog to the default configuration.
This can be useful if a malformed LSP is installed that results in loss of network connectivity.
While use of this command can restore network connectivity, it should be used with care because any previously-installed LSPs will need to be re-installed.

出现这个问题, 应该是昨天晚上使用一个软件让我的电脑变成无线基站的原因, 见我前一篇博客:让Windows 7变无线WiFi基站或无线热点.

[转]让Windows 7变无线WiFi基站或无线热点

微软在Win7中引入一个新的概念:虚拟无线网络,就是目前很多笔记本电脑在Win7下都会多一个Microsoft Virtual WiFi Miniport Adapter的无线网络连接,利用它可以让你的笔记本电脑充当无线路由的功能,把本机任何一个可以使用的连接(包括无线网络)转换成无线信号共享给别人 使用,也就是说变成一个无线基站或无线热点。

因为微软尚未开发完成,所以目前该功能被隐藏,不过还是可以通过两种方式配置,一种是命令行方式,另一种是通过第三方的软件来实现。

首先介绍一下命令行方式:

用管理员模式启动命令行提示符,输入
[code]
netsh wlan set hostednetwork mode=allow ssid=Hotspot key=passwordhere
[/code]
该命令行配置无线基站,设置ssid为Hotspot,密码为passwordhere

然后通过
[code]
netsh wlan start hostednetwork
[/code]
此命令启动基站功能

之后把本机上可以使用的网络共享给该虚拟无线连接就可以了

如果是通过第三方软件来实现也很简单,下载一个名叫Connectify的小工具(官网http://www.connectify.me),然后安装运行,配置相应的ssid和密码后启动它就可以了。

腾讯图片加载的诡计

今天偶尔在腾讯上看八卦新闻来着, 注意到了一个奇怪的现象, http://ent.qq.com/a/20101011/000085.htm#p=11 诸如此类的带图片的新闻, 在加载其他张图片时是会显示加载进度的, 但是右键图片发现此处并非flash所做, 真是奇怪了, 难道腾讯在此处没有用flash, 而直接能过javascript来加载图片并且获取到图片加载进度? 感觉不太可能, 在网上找了一阵也没发现用纯javascript实现的这种效果, 于是下载整个网页来看看腾讯到底怎么整出来了. 这一看终于明白了, 原来一切只是表象而已, 事实上还是flash完成了加载.

直接另存这个页面, 在相应的文件夹下有一个叫hd_min_v1.js的文件, 还好里面的变量没被压缩, 清晰好认, http://javascript.about.com/library/blformat.htm 直接复制到这个网页, 格式化一下, 好认点, 可以看到里面有一个loadingProcess的对象, 内部有一个progressPicHandler的方法, 里面完成了对进度的计算并且写入到一个loading的html元素里:

但是再用ultraedit搜索整个文件夹你也看不到哪边调用了这个方法, 这时回过头来看代码, 里面的init方法中有嵌入一个flash, 所以猜测还是flash里调用了这个方法, 找到文件夹中的loadingAs3.swf这个文件, 通过工具反编译, 终于在里面发现了调用这个方法的代码:

哎, 整活了半天, 才知道原来腾讯也只是通过js向swf发送加载图片请求, 而在swf加载图片的时候swf在侦听加载进度的方法中再次调用js, 完成将进度写到html里, 转了一圈, 终于回来了.