开心就好的代码人生

用伪代码书写我的人生

   博客堂 :: 首页 :: 联系 :: RSS 2.0 ::
随笔 - 384, 评论 - 6969, 引用 - 242

导航

关于

贴子以"现状"提供且没有任何担保也没有授予任何权利。
在TechED 2006上的演讲




开心就好

请见谅,我无法公布我的Windows Live ID,而且工作很忙,没有多余时间进行闲聊。

标签

每月存档

最新留言

广告

 

翻译了两篇Sidebar Gadget的文章后,决定自己写一个教程,与准备投身于Sidebar Gadget开发的劳苦大众们分享一下经验。也当作自己个人学习Gadget开发的一些总结,使自己可以学习得深入一些。欢迎大家就这一系列文章提出批评斧正。本部分准备介绍一些基础知识。

关于SideBar

SideBar是Windows Vista特有的一个显示子系统(曾经宣布为Windows XP以及Windows Server 2003也开发Sidebar,但该项目现已取消),在中文系统中称之为“边栏”。其执行程序,我们可以在以下目录中找到[SystemInstalledDriver:]\program files\Windows Sidebar,此文件夹 结构大体如右图所示,各文件夹以及文件的具体作用如下:

  • Sidebar.exe:此文件即Sidebar.exe的主执行文件,如果你在Windows Vista当中未打开边栏,可以直接执行该文件即打开。
  • Sbdrop.dll:Sidebar拖抻支持文件;
  • settings.ini: Sidebar设置文件,可以设置默认启动Gadget等特性。
  • wlstrvc.dll: Weather Gadget(即显示天气的小工具)所依赖的ActiveXControl,显示RSS信息的Gadget所依赖的ActiveX控件是置身在System32目录下msfeeds.dll文件;
  • en-us: 英文相关的资源文件;
  • zh-CN:简体中文相关的资源文件;
  • Gadgets文件夹:该文件夹中包括多个子文件夹,每个子文件夹均是Windows Vista默认自带的Gadgets解压后的形式。
  • Shared Gadget:存储在此文件夹中的Gadget可以供同一机器上的多用户共同使用。

而用户自行安装的Gadget可以在[SystemInstalledDriver:]\users\[user name]\appdata\local\microsoft\windows sidebar\gadgets\中查找到。

关于Gadget

在中文系统中,Gadget被翻译为“小工具”,微软的Gadget基本上分为三种,即Live Gadget、Sidebar Gadget以及Slideshow Gadget:

  • Live Gadget:如果大家访问http://www.live.com,会发现其页面可以进行自定义,而自定义的小型页面模块,我们称之为Live Gadget;
  • Slideshow Gadget:Windows Vista支持未来的笔记本电脑除了主显示屏外,还可以有一个外置的小型显示屏,类似于双屏手机中外置显示屏,在不开电脑电源的情况下,从这个扩展显示屏上获取自己想要的信息,而实现这个功能的模块称之为Slideshow Gadget;
  • Sidebar Gadget:本教程中所指的Gadget是此种,依赖于Windows Sidebar所执行的Gadget。

另外,这三种Gadget目前的开发环境、执行环境以及开发方式均不统一,不能统用。至于未来规划,开心也不是非常清楚。有知道的可以在此透露一下。

其实Gadget本身非常简单,如果感兴趣,可以访问http://go.microsoft.com/fwlink/?LinkId=55696,并且随意下载一个SideBar Gadget。把其另存在桌面上,比如那个计算器Gadget(Calculator)。其后缀名为.gadget。我们现在把后缀名改为.zip,在Windows XP系统上可以双击打开,就会看到其目录结构。

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

系统自带的Gadget大部分都使用了一些特别开发的ActiveX控件。我们自己开发的Gadget如果是想使用Microsoft Gadget Gallery(即http://go.microsoft.com/fwlink/?LinkId=55696)方式或者后缀名为.gadget方式分发,那么只能调用系统中已有的ActiveX控件,而不能创建自己的ActiveX控件。如果你想自己制作可执行的安装文件包,那么你就可以为所欲为了(流氓软件???呵呵)。

Javascript可以调用的ActiveX控件也非常多,比如使用Scripting.FileSystemObject访问文件系统,使用Microsoft.XmlDom分析XML文件,使用Microsoft.XMLHTTP调用Web Service等。所以Gadget可以做很多事情。

那么可以做什么事情呢?这就得依赖于我们的头脑不断闪现的灵感火花了。

问答题:博客堂,你认为哪部分可以提供Gadget服务呢?:)

打印 | 张贴于 2006-10-24 15:17:00 | Tag:暂无标签

留言反馈

#回复: Sidebar Gadget开发教程(1) 编辑
我想问个问题,有没有方法将非web格式的普通应用程序通过制作gadget的方法加载到sidebar上面去,如果可以的话,给我发邮件,liu.gan@pixela-china.com谢谢
2008-02-02 15:03:00 | [匿名用户:过客]
#回复: Sidebar Gadget开发教程(1) 编辑
這網頁的內容蠻豐富的...
2007-10-02 18:18:00 | [匿名用户:Ethan]
#回复: Sidebar Gadget开发教程(1) 编辑
很好的教程啊,不错不错
2007-06-07 22:21:00 | [匿名用户:valentine]
#Silverlight开发基础答疑(6) 编辑
没有想到开心将这个系列竟然写了六个部分。有时候感觉我不是一个非常有毅力的人,举个例子来说,关于戒烟这件事情,从高中开始就走上了一个不归路,期间也多次想过戒烟,但每次都是中途而废,一直没有坚持下来。从前天开始
2007-06-06 12:47:00 | [匿名用户:Joycode@Ab110.com]
#回复: Sidebar Gadget开发教程(1) 编辑
偶用的XP系统,但是能安装从vista提取的SideBar,也能够上Windows Vista的网站上下站更多的SideBar小工具,可是下载下来的是.gadget文件,双击无反应?请问一下,我怎么使用这些下载下来的.gadget文件,使它在我的SideBar中有效呢?
2007-05-16 09:34:00 | [匿名用户:joloveju]
#Vista Sidebar Gadget开发技巧几则 编辑
这不是一篇Vista Sidebar Gadget开发的教程,只是谈谈几则Sidebar Gadget开发中的小技巧。
2007-03-01 20:57:00 | [匿名用户:被遗弃的小指]
#Vista Sidebar Gadget开发技巧几则 编辑
介绍几个Vista Sidebar Gadget开发中的小技巧
2007-01-31 15:08:00 | [匿名用户:被遗弃的小指]
#Sidebar Gadget开发教程(3) 编辑
话说从前,书接上回。开心已经向大家提出了一个需求,并且给出解决技术难题的思路,不知道有多少位朋友已经开始尝试编写自己的第一个非“Hello World”的Sidebar Gadget了。那么今天开始,我们就开始逐步介绍开发Sidebar Gadget的具体方式。
2007-01-25 20:00:00 | [匿名用户:activity8810]
#Sidebar Gadget开发教程(3) 编辑
Sidebar Gadget开发教程(3)
2006-12-25 09:58:00 | [匿名用户:々城市孤狼々]
#Vista Gadgets 编辑
Sidebar与Gadgets,作为微软在Windows Vista中新纳入的组件,能够提供相当丰富的功能,为用户的日常操作与使用带来很大的便利,比如说,在Sidebar中,我们使用CPU与内存占用监视器查看系统状态,使用RSS阅读器来订阅聚合新闻等等。微软提供了一系列的
2006-11-12 22:06:00 | [匿名用户:ASP.NET Chinese Blogs]
#Microsoft Gadget 编辑
There is some resource about How to write a Gadget...
2006-11-07 20:19:00 | [匿名用户:Blog E]
#re: Sidebar Gadget开发教程(1) 编辑
学习一下
2006-11-01 15:50:00 | [匿名用户:疏水阀]
#re: Sidebar Gadget开发教程(1) 编辑
很详细,谢谢啊
2006-11-01 15:33:00 | [匿名用户:天天影院]
#re: Sidebar Gadget开发教程(1) 编辑
感觉还是以后做外屏更有用些。
2006-10-27 10:04:00 | [匿名用户:ed]
#re: 编辑
好文,鼓励鼓励。
2006-10-26 16:04:00 | [匿名用户:戴尔网站]
#re: Sidebar Gadget开发教程(1) 编辑
开心近来比较努力哟,鼓励鼓励,耳朵好了没?
2006-10-25 10:10:00 | [匿名用户:lee]
#re: Sidebar Gadget开发教程(1) 编辑
To Sheva:

Yes, I agree your view.
2006-10-25 09:51:00 | [匿名用户:开心就好]
#re: Sidebar Gadget开发教程(1) 编辑
Actually the html and scripting language based development mechanism is quite limited.

Sheva
2006-10-25 00:33:00 | [匿名用户:Sheva]
#re: Sidebar Gadget开发教程(1) 编辑
RSS已经有现成的了,所以没有什么意思了。
Comment倒是一个好主意,但不好设计。Photo也有现在的,但只能访问本机。
2006-10-24 21:19:00 | [匿名用户:开心就好]
#re: Sidebar Gadget开发教程(1) 编辑
Blog RSS , Photo 和Blog Comment都可以作为Gadget服务:D
2006-10-24 18:23:00 | [匿名用户:liangzhen]
对不起,目前本随笔不允许发表新评论.