返回列表 发帖

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

  翻译了两篇Sidebar Gadget的文章后,决定自己写一个教程,与准备投身于Sidebar Gadget开发的劳苦大众们分享一下经验。也当作自己个人学习Gadget开发的一些总结,使自己可以学习得深入一些。 & P  t- z+ ~2 X+ y0 u
* e+ X& [6 O/ I7 T  D0 y. R: G
6 T, i1 n( U1 ~! ?# C0 J
% k; b. Z( t. V# J; B3 M
欢迎大家就这一系列文章提出批评斧正。本部分准备介绍一些基础知识。
) p& ^" R# r  o0 [2 o* [
% |& I3 T( j9 P- L# _6 i  关于SideBar
0 I/ Q! F/ `; c  }0 d
/ P" \5 ~" R1 b7 }  i  SideBar是Windows Vista特有的一个显示子系统(曾经宣布为Windows XP以及Windows Server 2003也开发Sidebar,但该项目现已取消),在中文系统中称之为1 p; P) j0 W. H; @% s0 o6 r" y
  _& q5 W. G  |
  “边栏”。其执行程序,我们可以在以下目录中找到[SystemInstalledDriver:]\program files\Windows Sidebar,此文件夹 结构大体如右图所示,各文件夹以及文件的具体作用如下:
$ }  j% x6 S' d  W, R/ V) `  x# u
8 |5 k4 L; L- c' U/ w4 Y  Sidebar.exe:此文件即Sidebar.exe的主执行文件,如果你在Windows Vista当中未打开边栏,可以直接执行该文件即打开。
  Y' a& d, w( i) l1 `8 e. L6 S% Q5 [; N  }: I) J" A/ T! q9 o
  Sbdrop.dll:Sidebar拖抻支持文件;$ {* e+ A$ s- k% E! n0 k+ W' p

" Z9 ~8 ]1 F/ M  settings.ini: Sidebar设置文件,可以设置默认启动Gadget等特性。
: \$ a$ p3 |3 F5 p! N& @$ }5 ~
& N( j2 z9 u1 w. I- J' T  wlstrvc.dll: Weather Gadget(即显示天气的小工具)所依赖的ActiveXControl,显示RSS信息的Gadget所依赖的ActiveX控件是置身在System32目录下msfeeds.dll文件;8 ?% R0 n* m/ f# ~
$ L2 C% C7 l2 m6 V: H3 Y
  en-us: 英文相关的资源文件;- x5 `% h2 E' Q6 v6 j6 I( F. d
2 m  n+ J0 H0 s( K4 F! s
  zh-CN:简体中文相关的资源文件;
/ e1 ~* k- @7 p: {% i
! Z/ A8 a( X) r7 d% T) n  Gadgets文件夹:该文件夹中包括多个子文件夹,每个子文件夹均是Windows Vista默认自带的Gadgets解压后的形式。! ~- o; R/ Y; Q9 n4 ~4 e

; u. a% S' D# g  Shared Gadget:存储在此文件夹中的Gadget可以供同一机器上的多用户共同使用。" V$ E2 y- `* Q$ i; s  [
+ Q* F! S2 l9 W5 ]5 g: Z1 ?) Y3 o, @
  而用户自行安装的Gadget可以在[SystemInstalledDriver:]\users\[user name]\appdata\local\microsoft\windows sidebar\gadgets\中查找到。' q3 I8 @9 R. M# {7 Q) A

1 L) z0 e6 Q, `- c  关于Gadget
8 ^  c7 y9 r/ q- W+ V, [
- q0 J) X$ J0 i( D" _- d  在中文系统中,Gadget被翻译为“小工具”,微软的Gadget基本上分为三种,即Live Gadget、Sidebar Gadget以及Slideshow Gadget:3 M# A- ^9 r6 y5 \

3 Y0 C1 F* C* o4 ~/ h, ]4 L6 Q( R  Live Gadget:如果大家访问http://www.live.com,会发现其页面可以进行自定义,而自定义的小型页面模块,我们称之为Live Gadget;
) ], r6 w/ K+ c7 ~" r3 Y$ h
  k# x- k3 l% f+ p  O  Slideshow Gadget:Windows Vista支持未来的笔记本电脑除了主显示屏外,还可以有一个外置的小型显示屏,类似于双屏手机中外置显示屏,在不开电脑电源的情况下,从这个扩展显示屏上获取自己想要的信息,而实现这个功能的模块称之为Slideshow Gadget;" y8 N- ?, D* R3 i8 H. J

; P, G# ?4 b- e" {! }1 P' Y( i  Sidebar Gadget:本教程中所指的Gadget是此种,依赖于Windows Sidebar所执行的Gadget。) N% e. Z3 o" h. T' [5 b
- g8 L+ c1 l- C2 V4 y; }; v
  另外,这三种Gadget目前的开发环境、执行环境以及开发方式均不统一,不能统用。至于未来规划,开心也不是非常清楚。有知道的可以在此透露一下。
' w" i- |3 Q. h; j- H% q
; [  V8 n; m0 s8 ^2 F, {  其实Gadget本身非常简单,如果感兴趣,可以访问http://go.microsoft.com/fwlink/?LinkId=55696,并且随意下载一个SideBar Gadget。把其另存在桌面上,比如那个计算器Gadget(Calculator)。其后缀名为.gadget。我们现在把后缀名改为.zip,在Windows XP系统上可以双击打开,就会看到其目录结构。
* o6 K5 J# Q' u% g/ ~2 P$ |4 z% [) r# c$ ]5 n! X2 C4 d( K- z
  也就是说,Gadget本身是包含一堆HTML、JavaScript、CSS以及图片文件一个压缩包,其压缩格式可以采用ZIP格式,也可以采用CAB格式。采用CAB格式,可以进行数字签名,参阅我上一篇译文。在这个Gadget中使用Gadget.xml这个文件来描述此Gadget的通用信息,如名称、作者、版本、是否有设置文件、图标等等。此文件可以放置在根目录中,也可以放置在不同语言文件夹中,如en-us或者zh-cn当中。$ f% ]0 d$ W/ M$ q4 {1 a) S+ Q

' j/ a% o! W% w2 ~8 S2 r3 p. `  系统自带的Gadget大部分都使用了一些特别开发的ActiveX控件。我们自己开发的Gadget如果是想使用Microsoft Gadget Gallery(即http://go.microsoft.com/fwlink/?LinkId=55696)方式或者后缀名为.gadget方式分发,那么只能调用系统中已有的ActiveX控件,而不能创建自己的ActiveX控件。如果你想自己制作可执行的安装文件包,那么你就可以为所欲为了(流氓软件???呵呵)。" g+ X+ h) d6 z# t' F4 `- g; c! ?5 q

+ m! K- q4 v2 T5 |' b  Javascript可以调用的ActiveX控件也非常多,比如使用Scripting.FileSystemObject访问文件系统,使用Microsoft.XmlDom分析XML文件,使用Microsoft.XMLHTTP调用Web Service等。所以Gadget可以做很多事情。# ?, B6 M9 Z/ N* T7 A4 T

6 G- u5 u, A, n9 W) h  那么可以做什么事情呢?这就得依赖于我们的头脑不断闪现的灵感火花了。0 v: t0 Z- p5 a* b  U

2 ^  N  M8 q3 U( q* N; c7 y' z& b+ Z% _+ W5 |

1 ~8 i2 E9 J% o: n" K# [5 T6 d# o3 n1 u. n% \: d- p
原文:http://blog.joycode.com/joy/archive/2006/10/24/85611.aspx

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

返回列表