Cursor Clock
version 1.0.1
by Noah

Here's a little program for all you office clock-watchers out there.
This application will turn your mouse cursor into a working clock.

Free software?
How to Install It
How to Uninstall It
How to Use It
About The Source Code
Known Bugs
Updates and Bug Fixes




Download Full Setup
Cursor Clock version 1.0.1

Note that this setup includes the Microsoft VB5 runtime library which is why this setup is over a megabyte. If you have the VB5 runtime already on your system then Cursor Clock will take up less than 50K when installed.

Download this Full Setup version if you don't know what to do.

Email me if you have any other problems with downloading.

Download Lightweight Setup
Cursor Clock version 1.0.1

Use this if you know that your system has the Microsoft VB5 runtime installed. This is the same as the heavyweight, full setup, but it does not include the 1.5M VB5 runtime. This setup is less than half the size and should be much faster to download.

Download this Lightweight Setup version if you know you already have the Microsoft VB5 runtime installed on your system.

Download Cursor Clock VB5 Source Code

Free Software?

This software is "Spare-ware". If you can spare it, then please send it to me at:

ATTENTION: Noah Spurrier
1004 Revere Avenue, Suite B-45
San Francisco, CA 94124

Just reach into your pocket. What'd ya got in there? A five? Some quarters? Lint? Well, don't even think about it -- just stuff a little bit of money into an envelope; write my address on it; and (here's the hard part) stick a stamp on it and mail it today! Checks, money orders, barer bonds, stock certificates, foreign currency (this would be very cool!), poetry, art, post-cards, deeds and titles, anything friendly -- they are all welcome. Or, if you want to use PayPal to send me $5 then got for it! In fact, I get a kick back from PayPal if you do this. Just click here:

Make payments with PayPal - it's fast, free and secure!

If you have any questions about this then just email me. PayPal is a very cool service and is all the rage right now for sending money over the Internet. All the online auctions systems are using it. The advantage for you is that you can easily send money using your credit card through a large, trusted company using cryptographically secure internet connections. The advantage for me is that I don't have to sign up with a bank to process credit cards or bother with building my own secure Internet ecommerce web site. Plus, I get the aforementioned kickback ($5 for any new "PayPals" I bring in).

What do you get for you money? Well, you already have the program, and the source code, and the risky license disclaimer... Okay, so you don't get anything. You've already got it all. If you don't want to pay then it's free. What can I say? It's a big scam. You get a dorky little clock on your cursor, some crappy source code written by a big-shot programmer, and a warranty worth squat. This software wasn't even developed by a certified ISO9000 organization. It's probably not even Y2K compliant. Until then you get to tick-tick-tick away the minutes of your life and be constantly reminded of the time spent in your cubicle wasting away for the boss in the corner office. For all this, I want your lunch money. If every office-worker in the USA went on a fast during one lunch and sent me their money instead then I'd be able to eat lunch for the rest of my life. (That would be so cool!)

Okay, if you do send me $5 I will try to help you out if you have any problems with this software. It's a pretty tight, well written little program, and I have not had anyone have any real problems with it.

If you can't spare it and you still want to use this software then all I ask is that you distribute this software to as many friends, acquaintances, colleagues, known associates, and strangers as you can. Maybe one of them will come up with some money. I'm not asking for very much! I've gotta work the volume here.

Send your questions and comments by email to Click to send email.

How to Install It

Download the Cursor Clock setup program. Save it anywhere. Run the setup. It will extract and install itself. The setup program will ask you where you want to install the software. Normally use the location it will suggest. After the Cursor Clock is installed you can delete the setup program.

How to Uninstall It

Open the Control Panel and click on "Add/Remove Programs". You should find the application listed under "Cursor Clock". Select it then click "Add/Remove...". This will delete all the program files.

Note the following installation Check List (nobody really trusts uninstall software, do they?):

How to Use It

There is not much to using the Cursor Clock. Once it is installed and running you can just leave it alone. There are only two display options: 12-hour or 24-hour clock formats. The default is 12-hour format.

When the Cursor Clock is running its icon will appear on the tray of the taskbar. This lets you know it's active and this gives you a way to access the Cursor Clock menu. To display the Cursor Clock menu just double-click or right-click on the Cursor Clock icon.

taskbar tray taskbar tray popup menu
double-click or right-click on the Cursor Clock icon to display the popup menu

The popup menu is self-explanatory, but just to be pedantic I'll explain the selections anyway:

About The Source Code

This source code is written entirely in Visual Basic 5. Extensive calls are made to the Windows API (user32, gdi32, kernel32, and shell32.dll).

One interesting thing you should notice is that I coded all the bitmap resources in the Basic source code itself. I was trying to cut down on the library dependencies. Coding the bitmaps inline let me avoid the Standard OLE types. Specifically, I was trying to avoid using StdPicture. The bitmaps are small and black and white so they were easy to code manually.

The Cursor Clock applications is made up of the following files.

  1. form_main.frm
    The project uses form_main as the startup object. All the initialization occurs in the Form_Load event. This form creates instances of the CursorClock class and the NotifyIcon class.
  2. form_about.frm
    The About form implements the about dialog box which can be opened from the popup menu. This form displays the license information, contact information, and allows the user to start the default web browser and display the application home page (see the URLShell class).
  3. CursorClock.cls
    The CursorClock class manages the cursor resources, bitmaps, and details of creating cursors from raw bitmaps and modifying the normal system cursor using SetSystemCursor. CursorClock can read the current time and build a new cursor to show the time. This class also contains the bitmap image resources. Normally these resources would be found in a separate resource binary file.
  4. NotifyIcon.cls
    The Notify Icon class registers an icon on the taskbar tray.
  5. URLShell.cls
    The URLShell class opens an URL using the default browser
  6. kernel32_process.bas
    The kernel32_process module defines functions to the kernel32 process and thread API. These functions are used in the Form_Load event of form_main to lower the default process priority of Cursor Clock. A lower process priority lets Cursor Clock be nice to other "more important" applications that may be running. If you write a screen saver, then you usually want to do this. This really isn't necessary for Cursor Clock since it only modifies the cursor every 60 seconds, but I figured it was good in principle. You never know when one little app is going to send a heavily loaded system into swap thrashing.

Known Bugs

I am aware of only two minor, harmless bugs.

Mouse appears as a big black box under Windows XP or 2000

This occurs because the pointer shadow is turned on. The pointer shadow is incompatable with Cursor Clock. The pointer shadow is easily turned off by following these instructions:

  1. Go to the Control Panel and double-click on "Mouse" applet. The "Mouse Properties" window should open.
  2. Click the "Pointers" tab.
  3. At the lower-left you should see a check box called "Enable pointer shadow".
  4. UNCHECK this box to disable pointer shadow.
  5. Hit OK on the window and you should see the Cursor Clock.

Cannot Restore Original Animated Cursor

This occurs under the following situation:

The bug is that the original animated cursor will not be restored. Instead, a static cursor will be restored that shows a single frame of the animated cursor. This change is not permanent. If the user logs out the animated cursor will be restored when the user logs back in.

Updates and Bug Fixes

There was a Bug in the 1.0 version that caused CursorClock to leak memory only under Windows95. The leak was pretty slow, so you would only notice it if you left your machine on over night. Under WinNT the SetSystemCursor() function will automatically delete the cursor resource after it has been set, but under Win95 it does not. The resource must be deleted manually or a memory leak will result.