返回列表 发帖

Sidebar Gadget最新开发教程:理解两个概念

  翻译了两篇Sidebar Gadget的文章后,决定自己写一个教程,与准备投身于Sidebar Gadget开发的劳苦大众们分享一下经验。也当作自己个人学习Gadget开发的一些总结,使自己可以学习得深入一些。 / I" o1 r) K/ t$ J' D8 `+ m. H
7 g% C8 G* M8 R& T" |
- ~: f% y8 s6 i" w& U: F% ]$ z

( w; q1 T  u: D, i! `欢迎大家就这一系列文章提出批评斧正。本部分准备介绍一些基础知识。
% n7 U% t% c: ^, ^$ u$ i
$ w* ?7 ^% I& i3 ~7 r% N3 p" B  关于SideBar9 W3 v5 G% N( }- E7 I) ^8 l
* V4 \# e6 d( q  F* ]/ s+ p
  SideBar是Windows Vista特有的一个显示子系统(曾经宣布为Windows XP以及Windows Server 2003也开发Sidebar,但该项目现已取消),在中文系统中称之为
+ l& ?8 J% f' M, r6 j4 X1 x# W' a; Q% t/ H- J; L  `( q
  “边栏”。其执行程序,我们可以在以下目录中找到[SystemInstalledDriver:]\program files\Windows Sidebar,此文件夹 结构大体如右图所示,各文件夹以及文件的具体作用如下:
) w  Z8 T8 ?$ Q3 Z1 m! K6 {5 \( W0 T$ J6 u
  Sidebar.exe:此文件即Sidebar.exe的主执行文件,如果你在Windows Vista当中未打开边栏,可以直接执行该文件即打开。
3 \' Q) q9 H/ _$ D% o
! E( T0 {, A. i2 Q" ~  Sbdrop.dll:Sidebar拖抻支持文件;
9 ^. g$ X. y/ Y6 t% e' ]; M5 Z, P- b/ s" N( H
  settings.ini: Sidebar设置文件,可以设置默认启动Gadget等特性。
1 s( @% G7 t% ~- Y: b/ O: F. I6 q+ P# c6 u) n
  wlstrvc.dll: Weather Gadget(即显示天气的小工具)所依赖的ActiveXControl,显示RSS信息的Gadget所依赖的ActiveX控件是置身在System32目录下msfeeds.dll文件;% u! y! x0 d! `# i( P4 j' @2 q0 P3 W
- p, ]4 S; }5 t/ u' U* W
  en-us: 英文相关的资源文件;& i1 F7 _, Z# Y3 ^

% ?" ]1 ?' r% `! N; k( o  zh-CN:简体中文相关的资源文件;) D, |6 k& P: ^! H% N

4 h' v  o" L1 t% w  Gadgets文件夹:该文件夹中包括多个子文件夹,每个子文件夹均是Windows Vista默认自带的Gadgets解压后的形式。
# ?. n. B: D7 Y2 K
, z0 D0 f/ x% s* b( s8 W4 _4 a  Shared Gadget:存储在此文件夹中的Gadget可以供同一机器上的多用户共同使用。4 {9 m, H# C4 T; r
9 x& J. p9 |. |' W% @5 N) P* G
  而用户自行安装的Gadget可以在[SystemInstalledDriver:]\users\[user name]\appdata\local\microsoft\windows sidebar\gadgets\中查找到。" r& e& ?- D  R& f+ I! j) g( f7 j

) _& W* l6 a, U8 k  关于Gadget+ b* E( O$ z, r* \: B+ R: R
0 j" P; g0 X" f! e5 j# z! L
  在中文系统中,Gadget被翻译为“小工具”,微软的Gadget基本上分为三种,即Live Gadget、Sidebar Gadget以及Slideshow Gadget:
. e; Y! ]" a% D+ B9 D( k6 j7 s/ ^' W: s" G% g$ y6 h& g
  Live Gadget:如果大家访问http://www.live.com,会发现其页面可以进行自定义,而自定义的小型页面模块,我们称之为Live Gadget;
7 A) v) ~& p7 k: ?0 n) v! S2 n" U$ T; s+ T+ c  p  w
  Slideshow Gadget:Windows Vista支持未来的笔记本电脑除了主显示屏外,还可以有一个外置的小型显示屏,类似于双屏手机中外置显示屏,在不开电脑电源的情况下,从这个扩展显示屏上获取自己想要的信息,而实现这个功能的模块称之为Slideshow Gadget;
5 h) [5 F- `5 G7 {/ M1 D. C
9 B0 ^# p6 K% d1 p  Sidebar Gadget:本教程中所指的Gadget是此种,依赖于Windows Sidebar所执行的Gadget。7 m% [9 B. r7 |  Z

$ ^# A/ t9 ?  y  另外,这三种Gadget目前的开发环境、执行环境以及开发方式均不统一,不能统用。至于未来规划,开心也不是非常清楚。有知道的可以在此透露一下。  t, x, y) i+ V& o& d, A: H
, m( u* z0 Q; L; W
  其实Gadget本身非常简单,如果感兴趣,可以访问http://go.microsoft.com/fwlink/?LinkId=55696,并且随意下载一个SideBar Gadget。把其另存在桌面上,比如那个计算器Gadget(Calculator)。其后缀名为.gadget。我们现在把后缀名改为.zip,在Windows XP系统上可以双击打开,就会看到其目录结构。9 w5 Y" ^- G/ P' Q& i
3 G) x: H1 q7 e( J
  也就是说,Gadget本身是包含一堆HTML、JavaScript、CSS以及图片文件一个压缩包,其压缩格式可以采用ZIP格式,也可以采用CAB格式。采用CAB格式,可以进行数字签名,参阅我上一篇译文。在这个Gadget中使用Gadget.xml这个文件来描述此Gadget的通用信息,如名称、作者、版本、是否有设置文件、图标等等。此文件可以放置在根目录中,也可以放置在不同语言文件夹中,如en-us或者zh-cn当中。) W& v4 o0 M7 b7 R

$ P% ~1 I: k2 a3 X0 z2 N/ @- a  系统自带的Gadget大部分都使用了一些特别开发的ActiveX控件。我们自己开发的Gadget如果是想使用Microsoft Gadget Gallery(即http://go.microsoft.com/fwlink/?LinkId=55696)方式或者后缀名为.gadget方式分发,那么只能调用系统中已有的ActiveX控件,而不能创建自己的ActiveX控件。如果你想自己制作可执行的安装文件包,那么你就可以为所欲为了(流氓软件???呵呵)。  z8 n( B/ X+ o+ V7 d4 ~1 L
; n3 n( H$ {& J: U7 M3 E
  Javascript可以调用的ActiveX控件也非常多,比如使用Scripting.FileSystemObject访问文件系统,使用Microsoft.XmlDom分析XML文件,使用Microsoft.XMLHTTP调用Web Service等。所以Gadget可以做很多事情。
0 Q( Y* M& I$ d( P
8 K0 V% C3 W( B8 o7 Y  那么可以做什么事情呢?这就得依赖于我们的头脑不断闪现的灵感火花了。3 |: S; |9 _0 k7 [' T( y

$ i7 n' H( A7 g& B2 V1 p3 M" r! Q5 A! ~' y0 f) o5 m$ g
0 |, c2 R  ?; m3 Q4 Z
8 p& o# t1 n8 n
原文:http://blog.joycode.com/joy/archive/2006/10/24/85611.aspx

有意应聘版主的请发站内信给我!爱我家乡:〓 荔乡根子镇 〓 http://www.525247.net

返回列表