在N年以前,至从我知道了在XP上可以使用一个文件夹拖到桌面边边当一个快捷方式的启动栏后,我一直爱不释手。去年换了电脑,又跟上了windows 7的步伐,装好系统后,兴冲冲地将文件夹往后桌面一拖…没反应,再拖还是没反应,这才发现不能使用了。于是在网上找到一个Gadget侧边栏的快捷工具(App Launcher),用了下,感觉与xp下那个文件夹的快捷方式不符合,用不习惯(没显示快捷的名字,感觉很不安逸得)。于是准备自己动手做一个类似XP下的那个功能,在网上找了相关的资料,发现基本上都是使用javascript+css来制作,而我目前又洽洽是搞这个的,因此就动手制作了(里边的快捷应用参考了App Launcher程序)。
我仅求做个实用的东东出来,也许有很多Gadget的API我都用不到的,也看不明白,官方提供的全是英文的,俺英文…连小学生都不如。。。
在windows 7中,系统自带的gadget工具存放在" %homedrive%/Program Files/Windows Sidebar/Gadgets"目录下,用户安装的gadget存放在%userprofile%/AppData/Local/Microsoft/Windows Sidebar/Gadgets目录下。
因为我是使用java做web的 && 好像没有找到什么好的Gadget制作软件 && gadget使用了html+css+javascript,因此我使用了myeclipse 来进行开发,建了一个java工程,在里边建立了一个WebRoot文件夹(这个WebRoot与web工程的那个WebRoot没有一点关系,只是习惯上的原因,我命了这个名字)来做为gadget的根目录,写了个简单的ant文件来将这些文件复制到Gadget的目录下,并将其打包成gadget文件。
Ant 打包脚本为:
第一个是直接拷到gadget文件夹下,在桌面上右键就可以看到工具了,其中第二个test.gadget的zip文件就是为了以后方便安装而打的包。
好了,现在开始第一步:在WebRoot目录下新建一个gadget.xml文件,这个gadget.xml文件名不能改,必须是这个,否则系统就不认了。
在下图的gadget.xml文件配置信息与运行后界面的效果图对应关系如红线所示。
其中namespace暂时没有使用到,这个是微软为以后做扩展使用的。
<hosts>
<host name="sidebar"><!--这里的name属性必须为sidebar-->
<base type="HTML" apiVersion="1.0.0" src="mainWindow.html" /><!--这里的tape属性必须为html,apiVersion为1.0.0就可以了,src为小工具运行后的主界面,可以自定义修改-->
<permissions>Full</permissions><!--这里的值只能是Full-->
<platform minPlatformVersion="0.3" /><!--这个就按默认的0.3就可以了,-->
</host>
</hosts>
mainWindow.html代码为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>快捷工具</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <style type="text/css"> body { width: 140px; font-size: 14px; font-family: 微软雅黑, 宋体, serif, sans-serif, sans-serif; height: 400px; }
#divBody { background: url(/images/bgImg.jpg) repeat; border: 2px ridge #f0f0f0; }
.title { color: blue; font-weight: bold; font-size: 20px; font-family: 华文行楷, 宋体; text-align: center; height: 250px; } </style> </head> <body> <div id="divBody"> <div class="title"> Hello World! </div> </div> </body> </html> |
调用ant 脚本,将文件复制到gadget文件夹,运行后得到的界面图如下:
后边那个浅绿色的背景,是我窗口背景,因为在默认情况下,gadget不是透明的。