Introduction
In this article, I have described the steps to create a Windows Vista Gadget. I have demonstrated the article with an example of a digital clock gadget.
Background
Windows Vista Gadgets are small applications which are hosted on the Sidebar. Windows Vista Gadgets are simply made up of HTML and JavaScript code.
User-created gadgets are stored in the following folder:
C:\Users\<current user>\AppData\Local\Microsoft\Windows Sidebar\Gadgets
Every gadget is stored in its own folder under the above mentioned folder. The folder name should be the same as the gadget name followed by the .gadget extension.
Every gadget has two files associated with it. One is an HTML file with embedded JavaScript code to define the functionality of the gadget. The other file is an XML file called gadget.xml and is also known as the gadget manifest.
Using the Code
In the HTML file, the style
element is used to specify the layout and format of the gadget. The script
element is used to specify the content and working of the gadget. Finally a span
element is used to display the gadget.
Following is the HTML/JavaScript code for our digital clock gadget (DigitalClock.html):
<html>
<head>
<title>Digital Clock</title>
<style>
body
{
margin: 0;
width: 130px;
height: 65px;
}
#gadgetContent
{
width: 130px;
top: 24px;
text-align: center;
position: absolute;
font-family: Verdana;
font-size: 10pt;
}
</style>
<script language="javascript">
function showtime()
{
var now=new Date();
var h=now.getHours();
var m=now.getMinutes();
var s=now.getSeconds();
h=(h<10)?"0"+h:h;
m=(m<10)?"0"+m:m;
s=(s<10)?"0"+s:s;
gadgetContent.innerHTML="<h2><font color='red'>"+h+":</font>
<font color='lime'>"+m+":</font><font color='cyan'>"+s+"</font></h2>";
setTimeout("showtime()",1000);
}
</script>
</head>
<body onload="showtime()" bgcolor="black">
<span id="gadgetContent"></span>
</body>
</html>
The gadget manifest file is an XML file which describes the properties of the gadget.
Following is the code of the gadget.xml file:
="1.0"="utf-8"
<gadget>
<name>DigitalClock</name>
<namespace>Example.Azim</namespace>
<version>1.0.0.0</version>
<author name="Azim">
<info url="www.example.com" />
</author>
<copyright>Azim</copyright>
<description>Digital Clock</description>
<hosts>
<host name="sidebar">
<base type="HTML" apiVersion="1.0.0" src="DigitalClock.html" />
<platform minPlatformVersion="1.0" />
<permissions>Full</permissions>
</host>
</hosts>
</gadget>
Perform the following steps to add the gadget to the sidebar.
Points of Interest
This was a very simple gadget. But more complex gadgets can be created as your knowledge of JavaScript becomes better.
History
- 24th September, 2011: Initial version
I am a trainer by profession. Currently I am working with
iFuture Technologies(India) as a Senior Faculty. I enjoy programming as a hobby. During my career I have seen the growth and decline of many technologies, many of them being my favorites like Flash, WPF, Windows Mobile Development. Few of my current favorites are Android, Xamarin and Python, though I also like traditional and evergreen languages like PHP, C#, Visual Basic and Java.
Apart from computers, my favorite pastime is bicycling.