返回列表 发帖

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

  翻译了两篇Sidebar Gadget的文章后,决定自己写一个教程,与准备投身于Sidebar Gadget开发的劳苦大众们分享一下经验。也当作自己个人学习Gadget开发的一些总结,使自己可以学习得深入一些。 * M8 Y" h& _/ d0 ~. Q- s

& \) Z& y4 a$ {& d6 F
5 }, H2 x# D% {1 _5 b8 H
; u1 A4 o' d7 ^欢迎大家就这一系列文章提出批评斧正。本部分准备介绍一些基础知识。1 h, e. L0 T* w! F3 ~* s) `; E

. T; {. H" I8 B1 u  关于SideBar, U$ g/ ^' z7 C9 a

- o* g2 ]2 z/ v3 Z/ |5 Q, }  SideBar是Windows Vista特有的一个显示子系统(曾经宣布为Windows XP以及Windows Server 2003也开发Sidebar,但该项目现已取消),在中文系统中称之为$ w5 g, g9 V: X
1 F/ f$ ~) D! i. m2 @9 b5 [
  “边栏”。其执行程序,我们可以在以下目录中找到[SystemInstalledDriver:]\program files\Windows Sidebar,此文件夹 结构大体如右图所示,各文件夹以及文件的具体作用如下:" ?# k, z) Q+ Y3 E9 j1 s$ I

# C# j) a# ^2 h, g0 E# ^  Sidebar.exe:此文件即Sidebar.exe的主执行文件,如果你在Windows Vista当中未打开边栏,可以直接执行该文件即打开。
  f1 o7 m; v% y, {- X9 f1 F  S' j! h2 \- P2 ?! C
  Sbdrop.dll:Sidebar拖抻支持文件;& `# a% G# G* D8 _3 y$ L- G2 R( |
0 W# Z" T4 h% M% f' @3 `2 P
  settings.ini: Sidebar设置文件,可以设置默认启动Gadget等特性。8 [: Y1 _- z5 r4 A' o

" t$ N$ K) t+ m- f  wlstrvc.dll: Weather Gadget(即显示天气的小工具)所依赖的ActiveXControl,显示RSS信息的Gadget所依赖的ActiveX控件是置身在System32目录下msfeeds.dll文件;6 v3 w# u' m! |& H

0 J5 p0 [& {0 @- b0 s0 K7 B+ _1 N# z; ?  en-us: 英文相关的资源文件;
1 `! x; R: l  X* i! Y  X7 Z- q9 e( x5 ^7 c
  zh-CN:简体中文相关的资源文件;8 `; ~0 q+ D" b! M. R1 D) F9 c

% \$ E/ L; Z, X' g  Gadgets文件夹:该文件夹中包括多个子文件夹,每个子文件夹均是Windows Vista默认自带的Gadgets解压后的形式。
; h3 C' z) f  k
0 F, M: O7 H- W/ _- w  Shared Gadget:存储在此文件夹中的Gadget可以供同一机器上的多用户共同使用。! T; v: _! ~; P: C" |

, t- M: k; ]3 D! g  N7 o  而用户自行安装的Gadget可以在[SystemInstalledDriver:]\users\[user name]\appdata\local\microsoft\windows sidebar\gadgets\中查找到。
6 ^( \* s. L$ @1 U2 B
$ I! N9 E5 o% ]# B2 T2 r% c  关于Gadget7 A) ~7 X7 p9 j5 [$ @, m1 ]' ?- r

. _8 r& z4 f, L/ j5 ]( K( o/ d  在中文系统中,Gadget被翻译为“小工具”,微软的Gadget基本上分为三种,即Live Gadget、Sidebar Gadget以及Slideshow Gadget:
6 [) r( G; y6 O* R* m6 A3 z( T+ F! X8 o
  Live Gadget:如果大家访问http://www.live.com,会发现其页面可以进行自定义,而自定义的小型页面模块,我们称之为Live Gadget;
: V' Q# \) |4 G# y( O5 O' F; L( I! n4 x: Y- S; |# @$ }$ d. I# {4 C  a
  Slideshow Gadget:Windows Vista支持未来的笔记本电脑除了主显示屏外,还可以有一个外置的小型显示屏,类似于双屏手机中外置显示屏,在不开电脑电源的情况下,从这个扩展显示屏上获取自己想要的信息,而实现这个功能的模块称之为Slideshow Gadget;
( d( b4 _' G9 ~1 |( f. t
' _# q6 G* x3 S9 V4 Y8 c- E% n  Sidebar Gadget:本教程中所指的Gadget是此种,依赖于Windows Sidebar所执行的Gadget。7 z0 x- K# w1 r2 q& U) J5 ?8 f

3 q5 }, J( p4 r2 P8 K6 I  另外,这三种Gadget目前的开发环境、执行环境以及开发方式均不统一,不能统用。至于未来规划,开心也不是非常清楚。有知道的可以在此透露一下。
! L, S7 z0 O3 Z& X$ ?+ j
8 ?3 Q. b+ N3 H& ^9 i) D! z  其实Gadget本身非常简单,如果感兴趣,可以访问http://go.microsoft.com/fwlink/?LinkId=55696,并且随意下载一个SideBar Gadget。把其另存在桌面上,比如那个计算器Gadget(Calculator)。其后缀名为.gadget。我们现在把后缀名改为.zip,在Windows XP系统上可以双击打开,就会看到其目录结构。% A9 C; S7 C# n& T* _

' B  R) T1 f% p) z  也就是说,Gadget本身是包含一堆HTML、JavaScript、CSS以及图片文件一个压缩包,其压缩格式可以采用ZIP格式,也可以采用CAB格式。采用CAB格式,可以进行数字签名,参阅我上一篇译文。在这个Gadget中使用Gadget.xml这个文件来描述此Gadget的通用信息,如名称、作者、版本、是否有设置文件、图标等等。此文件可以放置在根目录中,也可以放置在不同语言文件夹中,如en-us或者zh-cn当中。, R. k3 m7 z/ m. N: r

8 ^% |% T1 K* O6 U) {3 E  系统自带的Gadget大部分都使用了一些特别开发的ActiveX控件。我们自己开发的Gadget如果是想使用Microsoft Gadget Gallery(即http://go.microsoft.com/fwlink/?LinkId=55696)方式或者后缀名为.gadget方式分发,那么只能调用系统中已有的ActiveX控件,而不能创建自己的ActiveX控件。如果你想自己制作可执行的安装文件包,那么你就可以为所欲为了(流氓软件???呵呵)。! W% A' S! I) i/ d
( o" g, n: {5 F1 k, G4 \9 ?* K
  Javascript可以调用的ActiveX控件也非常多,比如使用Scripting.FileSystemObject访问文件系统,使用Microsoft.XmlDom分析XML文件,使用Microsoft.XMLHTTP调用Web Service等。所以Gadget可以做很多事情。  G1 Y* z; K! S) _) N, X! W; ?
0 ^8 o5 ]7 G8 V$ m# x0 N- l, f
  那么可以做什么事情呢?这就得依赖于我们的头脑不断闪现的灵感火花了。. _+ v) E$ t% C, E1 N# [( ]
; q& q) r' ^+ d" O/ A. l
$ C% i- ^% e$ X5 Y3 ~+ f
# i8 v" I5 l9 a" Y3 A% G
# ]# b3 i4 ~+ I5 x
原文:http://blog.joycode.com/joy/archive/2006/10/24/85611.aspx

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

返回列表