Jump to content
MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. ×

TClock3 0.3.5


Recommended Posts

After months of work I have a new version of TClock3 available for people to play with. It's been re-architected from top-to-bottom and should be a *lot* more stable. I don't claim it's bulletproof, but it's very very usable. It even runs on XP, though task buttons and the system tray don't paint correctly there (something I haven't yet figured out). I've tested this on multiple Win2k boxes and it works very well. I encourage people to give it a try and send feedback, if you're inclined (and post screenshots if you really like it :yes: )

Here's a basic list of what's new:

- partial Start Menu skinning (not perfect, but ok for a first try)

- better font rendering

- support for min/max/close button halos if you're also running WindowBlinds (because WB4 doesn't do them)

- start button overlays

- you can have different fonts for the clock, taskbar buttons, start menu, and desktop if you use the full skinning option

- optional multi-line text on task buttons (make the font smaller and give it a try)

- if the global hook option is on, moving windows under the taskbar repaints it on the fly so it really behaves like glass (make sure you have at least a decent video card for this).

- you can save your settings to an .INI file (and load them back). It makes switching skins easy...

- supports start button bitmaps that have animated frames after the usual five (no, it doesn't animate them yet but it can read them properly if you tell it how many frames are in the image).

The start button overlay requires that you turn on the "global hook" option and restart TClock3 (if you don't, the overlay won't repaint itself properly). If you also want to try button halos, you have to turn on the "skin other windows" option as well.

The program isn't perfect, and I still consider it alpha (maybe almost beta), but it's very usable IMHO. I really need feedback if I'm to really improve it...

Download link edited to newest version

New version (0.2.9)

- Tried to remove some race conditions that could cause the clock area to be much wider than it should be.

New version (0.3.0)

- Added command-line option -loadini=filename where filename is the name of an .INI file that is in the same folder as TClock3Test.exe (JUST THE NAME, DO NOT INCLUDE ANY PATH). This will force TClock3 to load the .INI file at startup.

New version (0.3.1)

- Made some changes to the startup code that should improve stability

New version (0.3.2)

- Fixed a bad bug where some apps would refuse to close if TClock3 was running.

- If Explorer crashes, TClock3 will also exit rather than remain running.

New version (0.3.3)

- Added ability to skin window borders

- Massive changes to internal structure and user interface

New version (0.3.4)

- Fixed a TON of divide-by-zero bugs that could cause crashes

- Added code so it will cooperate with SmoothText 0.1.7 or greater.

New version (0.3.5)

- Made some major architectural changes (with more to come) squarely aimed at improving stability. The program is MUCH more stable now.

- Lots of other bugfixes (e.g. the start button overlay and button halos work better)

- Improved and expanded skin importing

- Had to change the way this works with SmoothText (stability issue). You'll need to upgrade to SmoothText 0.2.2 to use SmoothText with this.

The PC I tested Win98 on has a really crappy video card and driver, so I don't know if the visual glithces I saw are Win98 issues or driver issues. While TClock3 runs, sometimes the clock background, system tray, and taskbar buttons wouldn't paint properly. I'm posting it because I think it needs more Win9x testing beyond the old laptop I used.

Unfortunately, subpixel-aliased text won't work for desktop icons in Win98 since it can't read the desktop background in Win9x. Transparent taskbars also aren't possible in Win9x for the same reason. However, it can perform subpixel-aliasing on taskbar text since it doesn't need the desktop background for that.

If the clock background doesn't paint properly, try using a .BMP image for the system tray skin (I only tested alpha-blended .TGA files). In general, if you see visual glitches in Win9x, try using .BMP images instead (with alpha blending set to either None or MagicPink). TClock3 itself comes with a MagicPink.bmp file for just this purpose of getting the clock to paint correctly if all else fails.

You can get TClock3 0.3.5 here:

Edited by WildBill
Link to comment
Share on other sites

I've made a couple of enhancements and uploaded TClock3 0.2.4:

- Added a checkbox to the Desktop tab that lets you hide desktop icons in addition to icon text (though if you click on where the icons used to be the desktop still acts as if they're still there -- I haven't figured out yet how to prevent this).

- For the desktop icon text, taskbar button text, and start menu text (but not the clock text) you can specify a width percentage in the range 25..400. This lets you make your font appear thinner or fatter.

- Fixed a couple of bugs where I was calling code that wasn't thread-safe instead of the thread-safe version.

You can get TClock3 0.2.4 here. Has anyone tried TClock3 yet? Anyone have any feedback to offer/help needed/etc? Any screenshots? ;)

Link to comment
Share on other sites

  • 3 weeks later...

It's mainly intended for Win98 through Win2k, but I've only tested it on 2k and XP as that's all I have running. It has a lot of code inside to try to accommodate 9x but as I haven't tried it I don't know how well it will render. The API calls it relies on exist since Win98 so I don't expect major problems. Of them all, XP has the strictest memory protection so since it passes that test I would think that it should run fine on 98.

Link to comment
Share on other sites

I guess no one has tried it yet? :(
Number of Download: 19 ;)

I've downloaded a .zip file but after extract it I did not find any .exe file !!??

How we can use it?


May I suggest you to keep all versions together on the 1st post, and edit it later on with the new release?


Edited by MGadAllah
Link to comment
Share on other sites

Good idea. I've edited the initial post to point to the newest one. The main executable is TClock3Test.exe, and it's in there (though I agree it's not obvious -- I need to rename it when it nears completion).

TClock3 skins the taskbar for Win2k and earlier, and it also spruces up the desktop icons. Here is a screenshot I took of my laptop last month that uses it (on Win2k):


It uses WindowBlinds skins, though you don't have to have WindowBlinds installed to use it. If you don't have WindowBlinds, there are just a few steps you need to take to get a skin:

1. Go to Stardock's WinCustomize site.

2. On the left side, click the WindowBlinds link to go to the WindowBlinds section.

3. Find a skin you like and download it. You should download a file that has a .WBA extension.

4. .WBA files are really .ZIP files. Rename your .WBA file to .ZIP and extract it in a directory somewhere (warning, they usually contain a LOT of files, so you should extract it in its own directory).

Then you can use TClock3 with the skin. Start TClock3, right-click on the taskbar clock, and choose "TClock3 Properties" from the popup menu. All tabs but the last one (the one that says "Full Skinning" affect everything EXCEPT skinning, with the exception of the Start Button tab (where you set the start button image). These tabs are just as they were in TClock2, with just a few additions.

To skin the taskbar, go to the Full Skinning tab and enable it with the check box. Then, for each subtab, browse for the appropriate image file in the folder where you extracted the WindowBlinds skin. If the image is a .TGA file then the "Alpha" checkbox should be set to "Alpha", and if the image is a .BMP that uses pink areas to denote transparency then the checkbox should be set to "MagicPink". If it isn't either of these things (such as for the taskbar's main image) then leave the checkbox to "none".

When everything is set, click "Apply" to tell TClock3 to set everything or "Ok" to have it set everything and close the popup window.

The software is alpha and (I know, I know) isn't all that user-friendly yet. I eventually want it to be able to directly read WindowBlinds skins but I haven't done that yet. Here is an earlier MSFN thread where I first introduced TClock3 that has a lot more info on getting it to skin everything.

Edited by WildBill
Link to comment
Share on other sites

I have my 0.2.5 version directly reading WindowBlinds .UIS and .SSS files and I've implemented tiling for the main taskbar image and for rebar grippers (the tiling code is generic but I haven't implemented the UI or registry settings yet for tiling other images). I post my code in each version I release, but no matter what I did I couldn't get VC98 to compile the original TClock2 code :/ I'm mainly a Delphi programmer and when I decided to make TClock3 I ported TClock2 over to Delphi first.

One of the things that has driven me crazy in the past has been stability (or the lack of it). I did a lot of rearchitecting for 0.2.3 and converted it to at least a partial object-oriented design. The thing that really helped stabiliy was adding a TWindowManagerAccessor class that manages lots of things for the purpose of thread-safety (like access to images). All of my classes are contained in clock.pas, if you're interested.

At the moment I'm trying to get TClock3 to correct some of the deficiencies of WindowBlinds 4 on Win2k and earlier. For instance, if you use a WindowBlinds skin that has alpha-blended .TGA images for the close, minimize, and maximize buttons, WindowBlinds 4 doesn't render them properly (you get black areas around them where it should be alpha-blending). So far I have TClock3 painting them properly when you move windows but not otherwise, and it's driving me crazy.

Edited by WildBill
Link to comment
Share on other sites

That sounds familiar, and had a lot to do with the version checking as I recall. I don't remember if it was a change in the (parent child)relationship in the windows Clock Win->Notification area Win->System Tray Win->Task Bar Win, or a change in the Window class name but it was a pain to get it working with the XP skins, & Vista was a real bear to deal with.

I ended up stripping all the 9x stuff out and just setting transparency as the default for the clock window, 2k ignores it and it runs just dandy on XP/Vista with the default MS skins.

I know what you mean about the project being hard to get setup (I mainly code pure Win32 API C++) on VS, but I've got it as a MSVS2005 project now, and can compile for both x86 & x64 out of the same source pool.

I don't want to start a competition so I'm not going to post any links here, but if you pm me I'll give you access to my code so far. I've been playing with it on and off for about 7 years, but finally got serious about it when I started planning on switching to XP x64 and discovered you can't inject a 32 bit hook into a 64 bit process ... Well Duh! (hehe)

Let me know I'm happy to share.

Stoic Joker

Edited by Stoic Joker
Link to comment
Share on other sites

New version (0.2.5)

- Fixed sub-pixel aliased text rendering

- Lots of bug fixes

- Lots of new full skinning settings

- Supports tiling the main taskbar and rebar gripper images

- Added a big button to the Full Skinning tab to import WindowBlinds skins

- Trying to fix deficiencies with WindowBlinds 4 where close/max/min buttons don't render properly if they're alpha-blended .TGA files (so far I can only fix it when you drag the window)

I've updated the download link in the top post to point to it...

Edited by WildBill
Link to comment
Share on other sites

  • 1 month later...

Tried 0.2.2 and 0.2.5 on a Win98SE machine. SetLayeredWindowAttributes is missing from USER32.DLL. I presume this may be one reason for it crashing on start. Error message is:

TClock3 Properties

Access violation at address 00000001. Read of address FFFFFFFF.

After that, the settings panel shows up, options can be changed, but neither OK nor Cancel would make the panel go away. Process must be killed from Task Manager. No skinning is taking place however.

TClock2 v1.2.0 and TClock Light (2004 as well as 2006 builds) run fine, but they both have their own pros and cons. So, any news on this project? Any chance of bringing it back to Win9x? If you need more info and/or testing, I'd be glad to help.

Link to comment
Share on other sites

I added code to make sure that only Win2k and newer can call SetLayeredWindowAttributes, and I updated the download link at the top of the thread (version 0.2.6). Form what I saw, I doubt that was the problem, but you never know. I'd hate to have to wipe one of my extra hard drives and install Win98 just to try it, but I will if it still fails for you. If you care to try it again, please keep me posted on how it works out.

Edited by WildBill
Link to comment
Share on other sites

I just tested 0.2.6. First time I got the same error as above. On second run and subsequently, after enabling Dr.Watson, I got "External exception C000001D". Settings panel behaviour is the same: cannot be closed, needs to be killed. Interesting thing is Dr.Watson didn't move a finger. I tried Dependency Walker to see if I get some details and here's what it gave me.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...