如何开始使用Windows 7小工具

112

我从未为Vista或Seven编写过小工具,但我想尝试制作一个。但我应该从哪里开始呢?我已经试图在谷歌和MSDN上搜索,但我没有找到任何有用的东西。要么是非常古老的东西(Vista beta stuff),已经制作好的小工具,要么是Vista和Seven之间的差异。但这对我没有帮助,因为我根本不知道如何首先制作小工具... 我甚至还没有弄清楚它们是用什么语言编写的...

所以,有人可以帮我快速启动吗?

  • 我应该从哪里开始?
  • 我需要了解什么?
  • 它们是用什么语言编写的?
  • 它们如何“打包”?

换句话说,我该如何从安装了Visual Studio的Windows 7干净版本转移到一个可安装并放置在我的Windows 7桌面上的工作小工具?


我没有注意到Windows侧边栏对象参考的链接,该文档记录了小工具对象和其他一些API。 - Maksymilian Mulawa
4个回答

89

将所有当前答案结合并组织成一个答案,然后加入我的研究:

Microsoft gadget开发的简要概述:

它们是用什么编写的? Windows Vista/Seven小工具是使用XML、HTML、CSS和一些IE脚本语言混合开发的。也可以使用最新版本的Script#中的C#。

它们是如何打包/部署的? 实际的小工具存储在*.gadget文件中,这只是上面列出的文本源文件压缩成一个单一的zip文件。

小工具开发的有用参考资料:

我应该从哪里开始? 了解Windows Vista/Seven小工具开发的良好入门参考资料:

如果您愿意使用离线资源,这本书似乎是一个很好的资源: 我需要知道什么? 一些其他有用的参考资料;不一定是教学性的

更新:嗯,这证明了这是一个受欢迎的答案~分享我最近在Windows 7小部件开发方面的经验:

也许最简单的开始Windows 7小部件开发的方法是修改已经开发的小部件。我最近自己做了这件事,因为我想要一个更大的时钟小部件。找不到任何东西,我就拿标准的Windows时钟小部件的副本来尝试,直到它变成了两倍大小。我建议从时钟小部件开始,因为它相当小而且写得很好。以下是我使用的过程:

  1. 找到需要修改的小工具。它们位于不同的位置。搜索名为*.gadget的文件夹。例如:C:\Program Files\Windows Sidebar\Gadgets\Clock.Gadget\
  2. 复制该文件夹(安装的小工具未包含在zip文件中)。
  3. 重命名一些关键部分:
    1. 文件夹的名称
    2. gadget.xml文件内的名称。它看起来像:<name>Clock</name> 这是将显示在“小工具库”窗口中的名称。
  4. 压缩整个 *.gadget 目录。
  5. 将文件扩展名从 "zip" 更改为 "gadget"(可能只需要删除 ".zip" 扩展名)。
  6. 双击新的 *.gadget 文件安装您的新小工具。现在,您可以像添加任何其他小工具一样添加您的小工具(右键单击桌面->小工具)
  7. 查找此小工具的安装位置(可能是 %LOCALAPPDATA%\Microsoft\Windows Sidebar\
  8. 修改此目录中的文件。该小工具与网页非常相似:HTML、CSS、JS和图像文件。gadget.xml文件指定了哪个文件作为小工具的“索引”页面打开。
  9. 保存更改后,通过安装新实例的小工具查看结果。您还可以 debug the JavaScript(该文章的其余部分也很有价值)。

1
我建议使用JavaScript而不是“某些脚本语言”。我们发现,如果您最小化或分支使用特殊的MS小工具(如选项和最小/最大/“停靠”按钮),将代码转换为Chrome扩展程序非常容易。对于条件注释,Vista和Win 7都是IE7,而不是IE8。 - Erik Reppen
如果您有任何想法如何更改SlideShow小工具以拥有超过两种尺寸(或者只是使其像任何窗口一样可调整大小),那将是非常好的。 - VISQL

61
这是一篇关于Vista小工具的MSDN文章。有一些7小工具和变化的初步文档。我认为唯一的主要变化是小工具不再驻留在侧边栏中,因此“停靠/取消停靠事件”现在是向后兼容的补救措施,真的不应该使用。
最好的入门方法可能是调整现有的小工具。上面的链接中有一个示例小工具,或者您可以自己挑选一个不同的小工具。
小工具是用HTML、CSS和一些IE脚本语言(通常是Javascript,但我相信VBScript也可以)编写的。对于非常复杂的事情,您可能需要创建一个ActiveX对象,因此了解C#/C++用于COM可能会很有用。
小工具被打包为“.gadget”文件,这些文件只是重命名的Zip存档,其中包含顶层的小工具清单(gadget.xml)。

7

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接