Wclock world clock display
Wclock
is a free, customisable, always-on-top world time clock for Win32 computers.
Introduction
Wclock
stays on top of all your windows and shows the time at various locations around the world.
It never shows in the icon tray or the taskbar. It just sits there and tells the time until you exit the program.
It makes no changes to your system's time settings.
I've been using wclock for about a year and just wanted to say thanks.
I manage a team that works with offices in the US, The Netherlands, UK, Australia, and Macau.
I tried a number of other world clock apps and none really worked quite the way I wanted.
The always on top feature, and being able to customize things is great.
- Brian.
Thank you so much for the Clock. I was without it for a week and realized how dependent on it i have become.
Cheers,
-Sandy
This program is excellent - I have been carrying it with me for all the
laptops (~10) I have - never failed to work. Thank you!
-Alvin
Your WClock program is a real gem! Thanks so much.
I've downloaded a couple of similar programs over
recent months and yours is by far the easiest to install and to operate.
-Mike
Love your clock....
-Linda
Instructions
Download and install the program on your system and then customise the individual clocks to suit your own requirements.
How to move the clock on your screen
To move the entire clock window,
left-click in the black area and keep the left mouse button pressed down while moving the clock to its new position.
This new position will be remembered for next time.
How to access the menu (and get Help)
To access the menu, right-click with the mouse pointer over the clock and select one of the Menu Options.
How to change an individual clock
To change an individual clock, right-click with the cursor above the clock and select Clock Properties
How to view the current time in all time zones
To view the current time in all time zones currently provided, right-click and select Display all zones...
New in Version 1.3
- Added feature to show the relevant clock date when the mouse hovers over the grey name box.
The "(d)" denotes that daylight saving is in effect in the time zone.
- Added "Preferences" menu to give the user the option for the program to
Launch Automatically on Startup or not,
and to set the date format.
- Changed so that the user is only prompted on exit for changes to the clock's properties
(added/deleted a clock, changed format, etc).
Any changes in the window's position on your desktop are automatically saved without prompting.
- Added support for Windows XP/Vista shutdown messages
WM_QUERYENDSESSION and WM_ENDSESSION,
which means the program will quit when told to by the operating system,
and prompt the user to save any changes when the system is about to be shut down.
If the user does not respond in the time allowed, the program will save the changes anyway on the principle that the user probably meant to
save them.
- The "Setup" program has been updated to work better with Vista.
And no, we don't digitally sign our setup program with some useless
Microsoft-compatible certification authority. How much extra are you prepared to pay for that?
- Changes of interest to programmers:
- Now uses Registry entry in
HKCU\Software\Microsoft\Windows\...\Run to enable automatic
launch on startup instead of using a .lnk file in the Startup directory. (The setup program removes any existing
.lnk file.) This makes programmatically turning the auto-start feature on and off much easier and
has the added benefit that it will not give an error message if the executable is missing.
- Help file converted from old WinHelp to newer HtmlHelp format to be compatible with Vista
(but not with the Borland 5.5 compiler!).
- Removed the extra '\0' from the _STR definitions in the .h file. This extra '\0' has no effect in MSVC
but caused the dialog box to fail in Borland C++ 5.5.1.
However, the executable Version Properties now display incorrectly in Borland.
Go figure... Thanks to Sanne Ausma for pointing out these issues with Borland.
- Made time and date string formatting functions "__inline" to improve performance of tooltips.
Rationale: Why yet another world time clock?
Yes, there are lots of other `world clocks' out there, some free, some not. Why on earth produce another?
Well, it's purely self interest.
We travel a lot between different cities in the world and find an "always-on-top" time display very useful.
For a while we got very used to a particular free world-clock utility which sort of worked, but not quite.
We couldn't find another that did what we wanted, so we wrote our own,
and published the source code for others to make use of.
We hope that Wclock
is a quiet, unassuming little program that doesn't hog memory, change settings, or do anything else other than
just show the time. And, of course, gets it right.
However, we humbly accept that our program, too, may have its
problems at certain transition periods with daylight saving around the world, so please let us know
if you find one.
Setting the correct clock time
Wclock does not attempt to correct your system clock.
If you want a utility to correct your system's clock and make sure it's aligned to
an accurate atomic clock, we heartily recommend
Dimension 4,
which we've used for several years on many different Windows systems without any
problems whatsoever.
Of course, XP/Vista users, if you are happy having your system reporting back to Redmond every few minutes to get the time
and maybe just passing back your latest system configuration while it's at it, then please go ahead and
leave the default Windows setting in place.
One of the first things we do with any new Windows XP system on our computers is to disable that particular function.
Naturally, we'd never suspect that any operating system owner would ever do anything untoward. You can make your own call.
To disable:
- Open `Date and Time' in Control Panel: (click `Start', click `Control Panel',
click `Date, Time, Language, and Regional Options', and then click `Date and Time').
- Click the `Internet Time' tab.
- Clear the `Automatically synchronize with an Internet time server' check
box.
Download
Wclock
is a simple Win32 executable file wclock.exe only 34 kB in size.
It comes with a help file and a customisable time zone data base file.
Version 1.3.0a issued 1 January 2008 with time zone changes for Aust and NZ updated 30 March 2008.
For an installation program that installs automatically and gives you the option to make the program
start automatically when you re-boot, download WclockInst.zip (117 kB)
or if you want the un-zipped executable directly, download and run WclockInst.exe (135 kB).
This installation program will allow you to uninstall the
Wclock
program entirely
(using Start > Settings > Control Panel > Add/Remove Programs).
See uninstalling Wclock below.
You must have administrator rights to use the install and uninstall options.
Alternatively, for expert users who are happy installing their own executable programs,
download the Wclock executable and other required files (75 kB)
and unzip these into the directory
of your choice (NB keep them all together).
To copy your Wclock settings to another computer, see Copying WClock Settings.
Please read this small print before installing the software
This is a legal document. Please read these terms carefully before
installing the Software as installation will indicate your acceptance
to all of the terms of this licence agreement.
IF YOU DO NOT AGREE TO THE TERMS, DO NOT INSTALL THE SOFTWARE.
Wclock is free software.
Install and use entirely at your own risk.
David Ireland and D.I. Management Services Pty Limited ("the Author") make
no representations concerning either the
merchantability of the Software or its suitability for any particular
purpose. It is provided "as is" without express or implied warranty of
any kind. Because of the various hardware and software environments
into which software may be put, no warranty of fitness for a
particular purpose is offered.
In no event shall the Author be liable for any damages in connection
with or arising out of the use of the Software by any person
whatsoever, including incidental, indirect, special or consequential
damages, or any damages related to loss of use, revenue or profits,
even if the Author has been advised of the possibility of such
damages. By using the Software you expressly agree to such a waiver.
Adding or changing time zone data
The following time zones are currently included:
Note: the latest changes for Australia and New Zealand below.
- Adelaide
- Almaty
- Anchorage
- Auckland
- Bahrain
- Baku
- Bangkok
- Beijing
- Brisbane
- Buenos Aires
- Cairo
- Caracas
- Chicago
- Dakar
- Denver
- Dubai
- Eucla
- Hobart
- Hong Kong
- Honolulu
- India
- Istanbul
|
- Jakarta
- Johannesburg
- Kamchatka
- Katmandu
- Lagos
- London
- Los Angeles
- Moscow
- Nairobi
- New York
- Paris
- Perth
- Port Moresby
- Santiago
- Sao Paulo
- Singapore
- St Johns
- Sydney
- Taipei
- Tokyo
- UTC (GMT)
|
We provide these time zone details in good faith but we don't offer to keep them rigorously up to date.
The time zone values provided were checked on 31 January 2007 against
Arthur David Olson's database.
Daylight saving rules are changed by the authorities frequently, or we may have made a mistake.
Please make your own checks
(this may require you staying up until 3 a.m. on certain days in March and October to observe a correct transition!).
For more details on adding to or editing time zones, see Adding or changing time zone settings.
Note: if you make changes to the time zones or your computer's clock settings, exit the
Wclock program and start it again.
Australia and New Zealand daylight saving changes 2008
As of 2008, the eastern states of Australia and New Zealand (also an eastern state :-) have changed their daylight saving times.
The eastern states of Australia (NSW,ACT,VIC,SA,TAS) have now coordinated their daylight savings to start on the
first Sunday in October and end on the first Sunday in April.
In New Zealand, Daylight saving now starts on the last Sunday in September and ends on the first Sunday in April the following year.
To fix, either edit your wclocktz.ini file
(which should be in folder C:\Program Files\wclock) as follows
[Australia/Sydney]
TZ=AEST-10AEDT-11,M10.1.0,M4.1.0
[Australia/Adelaide]
TZ=ACST-9:30ACDT,M10.1.0,M4.1.0
[Australia/Hobart]
TZ=AEST-10AEDT-11,M10.1.0,M4.1.0
; ---
[Pacific/Auckland]
TZ=NZST-12NZDT,M9.5.0/2,M4.1.0/3
or download this updated wclock.ini file (zipped, 1.3kB), unzip it, and overwrite the
existing wclocktz.ini file. This file last updated 30 March 2008 and included in the latest installation download 1.3.0a.
(Alternatively, just download and install the latest version on top of your old one - your settings will be saved.)
You must exit and restart Wclock for
the changes to take effect.
Thanks to James Avery for pointing out the latest change in New Zealand.
My times are wrong
- Make sure you have the latest version of Wclock
installed with the latest version of the wclock.ini file.
(Many countries have been messing with their daylight savings recently!)
- Exit the Wclock program and start it again.
This fixes many problems.
- Right-click over the black area of the clock and select Exit.
- Then Start > Programs > Wclock.
- Make sure that your Windows time zone is set to the correct setting for your own time zone:
- Start > Settings > Control Panel > Date/Time > Time Zones tab
(or similar depending on your version of Windows).
- Make sure that the time zone shown is correct for your location.
If necessary, adjust and click Apply.
- Check the box Automatically adjust clock for daylight savings times
- If you've changed the time zone, adjust the Date & Time so your clock is correct.
- Click OK to exit the Date/Time applet.
- Restart the Wclock program.
- If the daylight savings changes are still not correct,
check the Posix TZ string settings (right-click, Clock Properties...).
If you think these need changing, edit the
wclocktz.ini file and restart
the Wclock program.
Important: If you've made changes to your system's time settings,
you must exit the Wclock program and start it again
My time zone is not included
Either
- Use an existing time zone that matches yours and change the title in Clock Properties; or
- Add a new entry to the
wclocktz.ini file
in the directory C:\Program Files\Wclock
You must exit the Wclock program
and start it again after making a change to the tz.ini file.
For example, if you live in Melbourne or Calgary, you can use (at least at the time of writing) the standard
clocks for Sydney or Denver, respectively.
So hold your nose and add the Sydney or Denver time clock,
then change the title of the clock (right-click + Clock Properties...) to Melbourne or Calgary
so it displays your appropriate city name.
If that sticks in the throat too much, then add a new entry to the INI file.
We have tried to use the reference cities given in David Olson's TZ database wherever possible, so if you think your
city has been unfairly omitted, please contact him.
Uninstalling
To uninstall, first try using the standard uninstall option:
- Make sure the Wclock program is not running -
right-click in the black area of the clock and select Exit.
- Start > Settings > Control Panel > Add/Remove Programs.
- Select Wclock and click on Change/Remove. This should start
the uninstall program which will completely remove the program.
This only applies if you installed Wclock using the WclockInst installation program we provided.
You must have administrator privileges to remove it. If Wclock does not appear in the Add/Remove list of
currently installed programs, follow the instructions below.
Wclock still won't go away!
If you are experiencing difficulties in uninstalling Wclock from your system and the instructions above do not work,
follow these instructions:
- You must have administrator privileges when un-installing.
- Make sure the Wclock program is not running
- right-click in the black area of the clock and select Exit.
- Start > Settings > Taskbar and Start Menu > Advanced tab > Advanced button
(or similar, the exact choices depend on what version of windows you have)
- This should put you in Explorer display in a folder called Start Menu.
- Go down into the folder Start Menu\Programs\Startup and delete the shortcut Wclock, if present.
- In Windows Explorer, navigate to the folder C:\Program Files\Wclock.
- If the file wclock.exe is still there, delete it.
- To complete the removal, delete the entire folder C:\Program Files\Wclock and any other files in there.
If you cannot find the wclock.exe file or the C:\Program Files\Wclock folder,
use Windows Explorer and do a search for the file wclock.exe. When you find it, right-click on the file
and select Properties and check under the Version tab that the company name really is
DI Management Services (you wouldn't want to delete someone else's program of the same name). Then delete the file.
Repeat the search until there are no more copies of the file on your system.
Source Code
The source code files (37 kB) for Wclock
are available under a GPL License.
Wclock
is written in pure ANSI C.
The executable provided was compiled using Microsoft Visual C++5.0.
The same source code will also compile using MSVC++6/7/8/... and (with limitations) Borland C++5.
We've tested it on Windows Vista, XP, 2000, NT4 and W95 platforms.
Compiling
To compile using MSVC, create a new, empty `Win32 Application' project and add these files:
wclock.c
wclock.h
wclock.rc
wclock.ico
emem.c
emem.h
lstring.c
lstring.h
tz.c
tz.h
If you make changes and recompile, you are on your own.
Techniques used
The Wclock
program demonstrates the following Win32 programming techniques:-
- How to create an `always-on-top' window
- Double-buffering with a bitmap to avoid display flicker
- Using combo boxes in a dialog
- Using a Tooltip control
- Saving settings in the registry
- Reading data from an INI file
- Creating OWNERDRAW buttons
- Opening a WinHelp file
- Using context (right-click) menus
- Using a mutex to prevent the program being loaded twice
- Creating a ListView in a dialog
- Using
WM_QUERYENDSESSION and WM_ENDSESSION
We've also re-written the `localtime' function from Arthur David Olson's localtime.c source code,
so it can be called repeatedly without using static variables,
looking for any files, or using or setting any environment variables.
Instead, the user passes a time_t value and a POSIX.1 TZ string and the function
returns a broken-down time structure set with the correct local time.
The complicated code is "hidden" behind an opaque pointer named TZ_T and only
the relevant functions are exposed to the user.
Wclock was originally published 30 April 2005. Version 1.3.0 last updated: 1 January 2008.
Signatures
MD5 signatures of files in the latest distribution signed
with our PGP key.
Revision History
- 30 March 2008: Updated
wclocktz.ini file to reflect daylight savings changes in Australia and New Zealand.
- 1 January 2008: New version 1.3.0. Shows date when mouse hovers over clock. Added Preferences option for auto-start.
- 4 February 2007: Fixed typo in
wclocktz.ini for Baku.
- 2 February 2007: Version 1.2.0. Updated wclocktz.ini file to reflect USA 2007 changes and add new zones.
Added `Display all zones' menu option. Clock Properties now shows TZ string.
- 3 June 2006: Version 1.1.1. Minor fix to ensure changes to clock position enables Save Settings option.
- 21 May 2006: Fixed installation program to make sure program is not running when un-installing.
- 29 March 2006: Version 1.1.0. Fixed INI file/hard-coded TZ values issue.
- 30 April 2005: Version 1.0.0. Wclock first published.
Acknowledgements
- Time zone handling
-
The time zone handling code in tz.c is derived from public domain software
by Arthur David Olson (arthur_david_olson@nih.gov)
available from ftp://elsie.nci.nih.gov/pub/.
- Installation program
-
The installation program was created using NSIS (Nullsoft Scriptable Install System) available from
http://nsis.sourceforge.net/.
- Executable compression
-
The executable was compressed using UPX, the Ultimate Packer for eXecutables available from
http://upx.sourceforge.net or
http://www.oberhumer.com/opensource/upx/
Contact us
Any comments, feedback, questions to
our email
or use our Contact Page.
This page last updated: 1 July 2008
Copyright © 2005-8 D.I. Management Services Pty Limited ABN 78 083 210 584,
Sydney, Australia.
All rights reserved.
<www.di-mgt.com.au>
<www.di-mgt.com.au/wclock>