Hi Gadget#
---
创建日期: 2011-12-24
---
本文简单介绍下多年前的技术 — Gadget
“an often small mechanical or electronic device with a practical use but often thought of as a novelty.” – Britannica
偶遇?#
某日,出于某个原因(有缘的话,很久很久以后估计会谈到~哈),想要一个东西,然后就搜啊搜啊,原来叫做Gadget啊,你好~
Gadget是什么#
Gadget其实还是有中文名的——小工具,如果在Vista/7下,在桌面空白处鼠标右键就可以看到了。
我不知道Gadget确切的定义是什么,大致上就是小工具,很小- -, 把它们放在桌面上,然后显示一些信息,很简单的信息。
算了,我还是不说了,自己去看吧:MSDN上的Gadget介绍。
比较关键的一点是Gadget的组成有HTML/CSS/JavaScript,也就是一个小型的网页一样,所以我才会些,不然……估计没时间学。
还有别的?#
秉承个人一贯作风,既然了解到有Gadget这么个东西,就会想其它平台上是什么情况。(以下内容未经考证,请自己判断- -)
Mac上有个叫Dashboard东西,按下F12,然后就会出现。 Dashboard是许多小工具放置的地点,而每个小工具叫做Widget,同样是基于HTML/CSS/JavaScript制作。
貌似这个是在MacOS X Tiger上第一次推出。 这里有一张来自维基百科的Dashboard图片。 (事实上,好像可以将那些Widget放到桌面上,不过和我没什么关系~)
接下来是KDE,我的印象中KDE到处都是Widget,甚至文件夹的显示都是Widget的貌似! 这个是在Gentoo LiveDVD上临时的KDE截图(那个眼睛是可以随鼠标转动的)。
那些小工具除了单独放在桌面上,还可以放在各Panel里! 而这些所依托的平台貌似是Plasma,开发这些除了JS还可以是C/C++、Python等等,所以……没什么
Gnome环境下没什么印象,好像只有Panel上可以放些小应用,现在的Gnome3连桌面都没了,桌面空空的~挺好。 至于XFCE、LXDE我就不知道了。 但是我这里说的只是说原生支持,我相信Gnome下就算没有也会有很多牛人做得出来!
回到主题#
还是回到Windows上来,这些Gadget首先在Vista上实现,然后再Win7下当然继承了,有些小改变。 这些Gadget依托的平台叫做Sidebar。
对于Gadget应用来说,它的安装文件时一个 *.gadget 文件,但其实质就是一个 *.zip 的压缩文件,这个文件包含有必须的 gadget.xml 用来描述这个Gadget的信息(比如版本、作者、链接、功能描述等等)、图片和HTML、CSS、JavaScript等组成Gadget的元素。
Gadget所存在的位置有 %localappdata%\Microsoft\Windows Sidebar\Gadgets
、%programfiles%\Windows Sidebar\Shared Gadgets
和%programfiles%\Windows Sidebar\Gadgets
。
直接复制地址到地址栏输入就好了,百分号中间的内容是系统变量。 第三个文件夹中包含的是微软自带的一些Gadget,第二个从文件夹名判断是共享的,不过没看到什么,而第一个就是用户自己安装的Gadget所在。
每个用户所使用的Gadget信息可以打开小工具库(桌面空白处右键后选择“小工具”或者其它一些地方找到)查看可以使用的小工具,而每个小工具的信息就是由各自的gadget.xml文件决定。
在%localappdata%\Microsoft\Windows Sidebar
文件夹下的Settings.ini文件中,可以看到当前所使用的Gadget信息。
通过各种试验(欢迎自己使劲地试):
*.gadget 的安装其实就是在
%localappdata%\Microsoft\Windows Sidebar\Gadgets
文件夹下创建一个同名文件夹,然后把里面的内容复制过去。所以可自己建立相关文件创建Gadget并且调试,也就意味着每次sidebar.exe都会扫描相应的文件夹并且读取gadget.xml文件生成相关信息。在小工具库中卸载某小工具后,如果是
%localappdata%\Microsoft\Windows Sidebar\Gadgets
下的,相应整个Gadget文件夹都会被删除,而%programfiles%\Windows Sidebar\Gadgets
里的不会,而在Settings.ini文件中PickerDefaultPackageSkipList一行会出现相应应用。 也就是说在%programfiles%\Windows Sidebar\Gadgets
下的小工具不会被真正卸载,只是显示的时候被跳过了。
貌似这么多够了,好像挺多东西真正写的时候就没什么好说的了,就这样吧! 了解更多请参考MSDN上的Gadget介绍。