从VSFilter的设置入口看DLL的特性

一时大意关掉了VOBSUB的自动载入,现在播放电影不会出字幕了。想要让它再次出现,以便更改载入设置,谁知却找不到设置程序入口了。这玩意就一个DLL文件,单独双击DLL文件运行不起来,后来找到个进入的办法:“rundll32 VSFilter,DirectVobSub”

这个逗号确实奇妙,如果仅仅rundll32 VSFilter,一点反应都没有,只有加上DirectVobSub才会出现控制面板。DLL文件真神奇,似乎是一个单元楼,你进来了还要喊名字,否则这个程序集群就不知道你要干什么。

应该是这样理解的吧。

修复性能库与注册表不匹配问题

新装系统,可能是因为启用了更严格的windows、system32目录权限的关系,导致在准备备份系统前发现事件查看器的应用程序部分出现了这样的提示:

“ASP” 服务的性能库 “C:\WIN2003\system32\aspperf.dll” 的配置信息 同在注册表中保存的受信任性能库信息不匹 配。此库中的函数不会作为受信任函数处理。
“TermService” 服务的性能库 “C:\WIN2003\system32\perfts.dll” 的配置信息 同在注册表中保存的受信任性能库信息不匹 配。此库中的函数不会作为受信任函数处理。
“W3SVC” 服务的性能库 “C:\WIN2003\system32\inetsrv\w3ctrs.dll” 的配置信息 同在注册表中保存的受信任性能库信息不匹 配。此库中的函数不会作为受信任函数处理。

查了下,似乎会导致这些服务执行缓慢。虽然不明原因,但是解决方法就是用命令释放和重新加载他们。这样做我想是建立在对系统绝对信任下的“治表”措施,因为如果真的服务性能库是错误的,那么这个错误就被掩盖了,从而可能产生潜在的安全问题。

一个个输入命令太费事了,把以下文字编辑成BAT文件执行一下就可以。其中有两项要看系统安装时的选择而定。

unlodctr w3svc
unlodctr msftpsvc
unlodctr asp
unlodctr inetinfo
lodctr w3ctrs.ini
lodctr ftpctrs.ini
lodctr axperf.ini
lodctr infoctrs.ini

修复OBLOG的一个积分错误

用来做博客比赛的OBLOG出问题了:一个用户的积分一夜之间下降2/3。

一开始以为只有一个用户受到影响,也许是数据存储的时候发生了错误,于是手工修改积分。但是按“修复用户”后,数字又降低了,说明是程序机制有问题。把数据库下到本地逐个解读,没发现什么问题。测试发了几个帖子,加了几个精华,分数的增长很正常,但是一修复用户数据就错误,于是把问题的症结缩小在修复用户数据的功能上。于是去OBLOG看论坛,最新的补丁有修复一个评论的统计错误,于是猜想可能是针对用户的统计程序计算公式出了问题。

由于不懂ASP程序,所以只能靠猜测去查找问题。看了下修复按钮的URL链接,首先打开m_user.asp这个功能程序,在最末尾发现了数据相加的代码。经过仔细分析,发现问题可能是在对分数项目的设置上,由于没有参数说明,因此不知道Oblog.CacheScores(7)是否是精华贴的分数设置。看了积分计算公式的其他参数后,猜想积分设置页面的输入框可能有与此对应的ID号,一查,果然。

问题解决,从积分设置页面的输入框ID判断,m_user.asp结尾的加法公式是错误的。精华的ID应该是9而不是7。

Oblog.CacheScores(7)*bests
应该为
Oblog.CacheScores(9)*bests

其他的也要做相应调整。因为我不懂程序,所以我只调整了这个和我有关的数字,其余无关的参数删除。结果终于正确了。

在积分设置页面,看到了几个隐藏的输入框,不知道为什么不显示出来,难道是给商业版用户准备的?反正现在的功能够用,也就不理会那么多了。

IE6又变态,IE7也变态

今天做一个内容翻滚效果,就是那种图片内容停X妙,然后无缝翻滚下一张的特效。

以前该效果在FF浏览器不显示,后来证实是JS定义的参数没有“符号的原因。今天把这个问题解决了,却意外发现在IE6下不正常,所有的信息层都全部出现在舞台上,而且一动也不动。这个效果在本地测试正常,放到WEB中却出现这样的问题。

我先是担心ID号冲突,结果没问题,然后把其他JS全部消灭,问题依旧。将页面另存到本地,故障却消失了。页面上只留这个效果代码,也可以正常运行,说明还是冲突了,是什么导致了针对IE6浏览器的冲突呢?于是采取一段一段删代码以确定故障点,最后终于找到了问题所在:我在一个还没有内容页的IFRAME的来源地址中写了“等待加入”四个中文字。但是这个IFRAME与那个JS效果八杆子打不着,FF也不认为这是个问题,单单IE6对这个问题想不通,导致JS执行异常。看来还是#号保险啊。

080423补充:

IE7下IFRAME的SRC为“http://”的时候,会自动访问这个空的地址,从而造成该标签所在页面无法显示,无法访问。

IE6竟然对样式表的顺序有变态需求

如果样式表文件里存在下面这种样式写法要当心了

#header_right.kouhao{…}
#header_right.ppnk{…}

在FF和opera下,不会有问题,但是在IE6下,第二条将没有结果。

我是在调试背景图片的时候发现这个问题的,在第一个页面正常的背景图样式,在第二个页面就怎么也出不来,开始怀疑是名字和顺序的问题,后来在睡觉前突然想到是不是两条不能并存,今天一试果然如此。