返回列表 发帖

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

  翻译了两篇Sidebar Gadget的文章后,决定自己写一个教程,与准备投身于Sidebar Gadget开发的劳苦大众们分享一下经验。也当作自己个人学习Gadget开发的一些总结,使自己可以学习得深入一些。
7 Y! G/ {$ n1 A' g! L. X" m" D( r2 b, W( F

9 L  i8 S7 F& @% V$ q' j* _3 H' |
! Y8 _5 q9 b& m* ^! a+ |3 R  w+ x欢迎大家就这一系列文章提出批评斧正。本部分准备介绍一些基础知识。
" s8 j+ q' ^( y. R, g
4 w+ N( N0 T5 F3 H- r7 o  关于SideBar
, r7 z8 J7 J& u4 K
2 X5 c( j8 b9 j9 Z8 w  SideBar是Windows Vista特有的一个显示子系统(曾经宣布为Windows XP以及Windows Server 2003也开发Sidebar,但该项目现已取消),在中文系统中称之为
. N9 m" }0 W+ v- ?1 d6 f& B6 i
7 _3 H. T5 n- j  “边栏”。其执行程序,我们可以在以下目录中找到[SystemInstalledDriver:]\program files\Windows Sidebar,此文件夹 结构大体如右图所示,各文件夹以及文件的具体作用如下:
/ d/ u0 L1 Q# u3 k' C, t  q$ H2 P9 c: L/ K5 g- o
  Sidebar.exe:此文件即Sidebar.exe的主执行文件,如果你在Windows Vista当中未打开边栏,可以直接执行该文件即打开。
  A$ K) V) C7 Q0 ~3 E' \6 q6 N  O* w8 M  x! G* @7 Z6 g
  Sbdrop.dll:Sidebar拖抻支持文件;. k6 G4 l$ K% ]+ S
) o4 p# U  I( N  \- [7 X" A! g+ ^
  settings.ini: Sidebar设置文件,可以设置默认启动Gadget等特性。& ^+ U* Z! ^1 o  t; T- G

! j; t5 u0 g4 S- _1 M, L  wlstrvc.dll: Weather Gadget(即显示天气的小工具)所依赖的ActiveXControl,显示RSS信息的Gadget所依赖的ActiveX控件是置身在System32目录下msfeeds.dll文件;. H8 @& A; s2 s9 Q( }; Y4 t

$ s  A, F7 `4 m, G! Q  en-us: 英文相关的资源文件;
+ t0 M; O  i  D
, m& {9 g( X" f2 f+ p& P# B  zh-CN:简体中文相关的资源文件;: m8 P* @, a7 y- g" P# A5 q* i$ C
, f' J: B- L9 C3 ?* P
  Gadgets文件夹:该文件夹中包括多个子文件夹,每个子文件夹均是Windows Vista默认自带的Gadgets解压后的形式。
' g* h2 P& _( _. W6 t8 l- t
9 [8 ?5 u6 K$ o, S1 e  Shared Gadget:存储在此文件夹中的Gadget可以供同一机器上的多用户共同使用。% ]) c! n0 n* s# H

' @4 x/ }1 ]! @4 T! E2 M5 J  而用户自行安装的Gadget可以在[SystemInstalledDriver:]\users\[user name]\appdata\local\microsoft\windows sidebar\gadgets\中查找到。5 b2 I1 Z! V  |" i
( q1 j% P  U$ E
  关于Gadget3 C( H8 C* P5 O3 n

% K  t, F/ N, [& G! H/ q  c  在中文系统中,Gadget被翻译为“小工具”,微软的Gadget基本上分为三种,即Live Gadget、Sidebar Gadget以及Slideshow Gadget:
, K4 n5 e! v/ }# V( `: q3 [" {7 f! \2 X
3 q3 a; s! G' i  Live Gadget:如果大家访问http://www.live.com,会发现其页面可以进行自定义,而自定义的小型页面模块,我们称之为Live Gadget;
% p' o; b7 ^# X
  C# I" B- b. T! T  Slideshow Gadget:Windows Vista支持未来的笔记本电脑除了主显示屏外,还可以有一个外置的小型显示屏,类似于双屏手机中外置显示屏,在不开电脑电源的情况下,从这个扩展显示屏上获取自己想要的信息,而实现这个功能的模块称之为Slideshow Gadget;
, n# ~' N8 y# H1 p( U
) v+ O2 ^+ X+ k6 d- I- K; U  Sidebar Gadget:本教程中所指的Gadget是此种,依赖于Windows Sidebar所执行的Gadget。. U( i+ o6 R& E3 M! Q$ N+ d
) f" T9 f: Y1 ^$ G" \% k- G9 J
  另外,这三种Gadget目前的开发环境、执行环境以及开发方式均不统一,不能统用。至于未来规划,开心也不是非常清楚。有知道的可以在此透露一下。6 Q, _5 I$ F; q4 r
" V) Y: U4 V7 p; I# [
  其实Gadget本身非常简单,如果感兴趣,可以访问http://go.microsoft.com/fwlink/?LinkId=55696,并且随意下载一个SideBar Gadget。把其另存在桌面上,比如那个计算器Gadget(Calculator)。其后缀名为.gadget。我们现在把后缀名改为.zip,在Windows XP系统上可以双击打开,就会看到其目录结构。
: c& h5 E. R4 ~! |8 K; `) G+ {: Z) ^4 U$ `) h' Z& o
  也就是说,Gadget本身是包含一堆HTML、JavaScript、CSS以及图片文件一个压缩包,其压缩格式可以采用ZIP格式,也可以采用CAB格式。采用CAB格式,可以进行数字签名,参阅我上一篇译文。在这个Gadget中使用Gadget.xml这个文件来描述此Gadget的通用信息,如名称、作者、版本、是否有设置文件、图标等等。此文件可以放置在根目录中,也可以放置在不同语言文件夹中,如en-us或者zh-cn当中。
4 _; q- a- ~7 z% U9 U
  l# `2 Q+ C& F7 [% d2 Q  系统自带的Gadget大部分都使用了一些特别开发的ActiveX控件。我们自己开发的Gadget如果是想使用Microsoft Gadget Gallery(即http://go.microsoft.com/fwlink/?LinkId=55696)方式或者后缀名为.gadget方式分发,那么只能调用系统中已有的ActiveX控件,而不能创建自己的ActiveX控件。如果你想自己制作可执行的安装文件包,那么你就可以为所欲为了(流氓软件???呵呵)。1 o3 P% {( o  n8 ]3 |9 Y! |. M

7 W3 d2 n5 d2 S  Javascript可以调用的ActiveX控件也非常多,比如使用Scripting.FileSystemObject访问文件系统,使用Microsoft.XmlDom分析XML文件,使用Microsoft.XMLHTTP调用Web Service等。所以Gadget可以做很多事情。
! c1 W* @2 D# T6 h. K
$ m* b' {- |$ j1 H+ L  那么可以做什么事情呢?这就得依赖于我们的头脑不断闪现的灵感火花了。
) G- q' v( }- o9 ~  P; f8 ^- j! w, Z( k

1 `* @$ U% }7 a+ y# m
: g; p% {8 \( ~3 u, y$ o9 g: V/ l5 i$ i6 R9 D
原文:http://blog.joycode.com/joy/archive/2006/10/24/85611.aspx

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

返回列表