一步一步搞定VIsta边栏天气

初装Vista时,可以使用边栏里面的小工具显示天气的,但是经过一段时间,Vista的自动更新修改了weather的小工具的代码,使得显示是“服务不能使用”,不知道微软为什么要这样限制?我觉得这么多小工具中,就这个天气预报的还有点作用,现在不能使用很是郁闷!

 

好了,废话这么多,进入正题。

 

首先看效果,修改的原因和原理放在最后。

第一步:取得天气小工具所在文件夹的所有权。

第二步:修改localizedStrings.js中的

L_localizedStrings_Text['DefaultCity'] = ‘Redmond, WA’;
L_localizedStrings_Text['DefaultLocationCode'] = ‘wc:USWA0367′;
L_localizedStrings_Text['DefaultUnit'] = ‘Celsius’;

替换成下面的代码(以上海为例)

L_localizedStrings_Text['DefaultCity'] = ‘Shanghai, CHN’;
L_localizedStrings_Text['DefaultLocationCode'] = ‘wc:CHXX0116′;
L_localizedStrings_Text['DefaultUnit'] = ‘Celsius’;

更多城市代码请到

http://weather.msn.com/region.aspx?&wealocations=Shanghai&setunit=C#current

切换城市获得,相信大家能够找到,找不到的话就留言吧。

 

到这一步,再打开天气小工具就可以看到上海的天气了,但是显示上似乎有点bug,当前天气比较偏上,超出了范围。

 

第三步,修改css文件样式

修改weather.css中的

#TemperatureCurrent, #TemperatureCurrentDropShadow
{
  position:absolute;
  top:3px;//原值为-3
  height:10px;
  width:70px;
  text-align:right;
  margin:0;
  padding:0;
  margin-left:54px;
  font-size:24px;
  z-index:1;
}

#TemperatureCurrentUnDockedMode
{
  font-size: 32px;
  text-align:right;
  position:absolute;
  left:145px;
  width:95px;
  top:15px;//原值为5
}

 

到此满足绝大多数用户的需求了。

 

下面说说题外话,

1.更新前的程序,是调用页面返回XML,更新后调用WebService,我现在使用的是更新后的程序,WebService不支持本区域的查询,所以用了最上面的方法,修改初始值来绕过这个地方,希望有高手能够修改出一个完美版来,期待中。

2.这个小工具就是html加js制作的一个小程序,代码都在里面,有兴趣的朋友可以自己修改里面的代码,或是参考然后做出自己的小程序。

Leave a Reply