admin 管理员组

文章数量: 887021

windows 7 上也有widget,叫做Gadgets,是默认安装的,安装位置在C:/Program Files/Windows Sidebar,在win7 桌面的右键菜单里面有小工具这个选项,通过这个就可以启动Gadget.这个版本与Vista的区别是没有在桌面右端的停靠区.

我感兴趣的是它怎么样实现的?通过分析,我发现Gadgets的引擎是用ie实现的,窗口的透明是通过ws_ex_layered实现的.每个Gadgets起码有两个窗口,一个是ie引擎的窗口,这个一个普通的窗口,另外一个窗口是具有ws_ex_layered属性的窗口,这个窗口是ie引擎的窗口的父窗口(这个可以通过spy++知道).

知道了Gadget的引擎是ie,就容易理解Gadget该怎么样编写了. Gadget实际就是网页(html+css+js+vbscript)的变种,它给ie引擎增加了一些内置对象,以便扩展js和vbscript的功能.

另外,每个Gadget旁边的控制栏(就是有关闭按钮,拖动按钮的那个小东西)上面显示什么不是根据配置文件来决定的,而是根据网页里面的js有没有实现相应的回调.例如日历Gadget的旁边有一个较小尺寸的按钮,要显示这个就必须设置两个回调,如下:

System.Gadget.onDock=Dock;

System.Gadget.onUndock=unDock;

要显示设置按钮只需要设置一个回调:

System.Gadget.settingsUI = "settings.html";

本文标签: 小工具 Windows Gadgets