再更新一篇,开始打造自己的win7桌面小工具
装上Windows7之后,对旁边那个小工具(Gadget)很是喜欢,于是开始学习如何制作属于自己的小工具。
但是我目前完全是零基础,所以这篇日志完全记录了我学习Gadget开发的全过程。如果有人感兴趣,完全
第一篇记录下资料的收集,以及一个修改版的HelloWorld
一、资料
首先是上MSDN,说的比较详细了,连接在这里:http://msdn.microsoft.com/zh-cn/library/aa965850(en-us,VS.85).aspx
这个人的中文翻译也不错http://hi.baidu.com/alezi/blog/item/3e3c23fa52d4499b58ee90a2.html
说白了这个东西就是个网页,但是有一点不一样,就是图像的问题,微软说这里显示图像要用g标签,即G:BACKGROUND、G:TEXT和G:IMAGE元素。但是好像img也是正常的。
但是考虑到刚刚开始学习,界面是次要的,所以没有去管这个。目前的学习的中心应该是功能。
一个Gadget的安装包应该是zip格式,但是我用winrar压缩却装不上,估计必须是用windows自己的zip压缩。
安装后会保存在"C:\Users\Administrator\AppData\Local\Microsoft\Windows Sidebar\Gadgets\"目录下。
另外,自带的小工具在C:\Program Files\Windows Sidebar\Gadgets下,还是比较有参考价值的。
二,helloworld
这个helloworld比较比msdn上那个就复杂了一点点,实现了自动刷新,整个工具作用是不停的刷随机数。
小工具的入口在目录下的gadget.xml,里面包含了一些作者信息工具名什么的。关键是指明主网页的位置。
主网页是显示的内容,这里我觉得和做网站不一样,因为内容,特别是文字内容极少。我觉得,把css完全写在html里更方便以一点。
主网页内容和那个标准helloworld几乎一样,添加个<script src="js/main.js" language="javascript" type="text/javascript"></script>
在<body>标签加进去onload=“onLoad()”。就完全没有什么了。
main.js是关键部分,其实也没什么。完全自己后来凭空写的,估计会有错,反正也没人试这个(没人像我从零开始吧)。只当是做日记了。
var gadgetTimeout;
function write(str,content)
{
document.getElementById(str).innerText = content ;
}
function onLoad(){
System.Gadget.visibilityChanged = checkVisibility;
System.Gadget.onUndock = checkState;
System.Gadget.onDock = checkState;
checkState();
update();
}
function update(){
try{
clearTimeout(gadgetTimeout);
write("content" , Math.random().toString())
gadgetTimeout = setTimeout("update()", REFRESH_INTERVAL);
}
catch(err)
{
write("debuger", "bug" + err.description);
}
}
function checkState()
{
if (!System.Gadget.docked)
{
setUndockedSize();
}
else
{
setDockedSize();
}
}
function setUndockedSize(){
document.body.style.width = "225px";
}
function setDockedSize(){
document.body.style.width = "225px";
}
function checkVisibility(){
clearTimeout(gadgetTimeout);
if (System.Gadget.visible)
{
gadgetTimeout = setTimeout("update()", REFRESH_INTERVAL);
}
}
三、安装
把整个文件夹右键——发送到——zip文件夹。把生成的zip文件后缀改为gadget。安装即可。
第一篇就这么多了,很垃圾,不过考虑到连javascript还是刚开始学,也就这样了。不过毕竟是开始了,写博客就是个日记,等我老了,我也知道自己忙过什么。
下一篇,开始实现cpu监控功能,预计监控网络流量会很麻烦,看吧先。