October 4, 1999
By Karen Kenworthy
IN THIS ISSUE
A Little More Window Watcher
You just never know which Power Tools will be a hit. For the second week in a row my mailbox has been chock full of messages about the new Window Watcher Power Tool. To my amazement, these messages are filled with tales of how the Window Watcher has changed lives. More than once I've had to wipe away a tear, as I read the many heartfelt expressions of thanks, encouragement, and newfound hope. It really makes this job worthwhile.
Wait a minute ... Darn. Those aren't my messages. I've been reading Fred Langa's e-mail again. Most of -my- messages tell of ways I should improve my programs, features I overlooked, or implemented clumsily. <sigh> Oh well ... Back down to earth.
For example, some readers reported last week being annoyed by the Window Watcher's auto update feature. If you enabled the auto update feature, you know the list of window title bars scrolls to the top of the list each time it's refreshed. You can't scroll to a lower part of the list, and watch that region as title bars change, come and go. After each refresh, you'll be looking at the top of the list again.
Unfortunately, there's no guarantee the section of the list you are viewing will even exist after the list has been refreshed. If the windows you're watching do survive, their location in the list may shift up or down as other windows appear and disappear. As a result, there's no perfect solution to this problem.
The original auto update feature annoyed me too. That's why I made it an option, one that's off by default, and added the manual Refresh button. But a better solution for some is to make the auto update rate user-selectable. That's what Window Watcher does now. If you enable the auto update feature, you can then also select how often the list of windows will be redisplayed. The impatient among can choose to see an updated list as often as once every second. The more leisurely can command the program to take as long as 999 seconds between updates.
Window counts also confused some readers. Windows come in two flavors. When started, each Windows program creates a single "top-level" window. If visible, this may be the program's main window. Most programs then create several additional windows. These are called "child" because they are subordinate to the program's main window.
The original version of Window Watcher correctly displayed the number of top-level and child windows it found. But if you asked the Watcher to hide entries for windows with no title bar text, the situation became confusing. Did the displayed window count include all windows, or only those displayed in the Watcher's list.
To eliminate this confusion the newest Window Watcher now displays four different window counts. They are: top-level windows found, top-level windows displayed in the list, child windows found, and child windows displayed in the list. That should keep everything straight, at least until someone in Redmond invents a new flavor of window.
I've also heard from some folks who were disappointed to find that the Watcher's window creator display, which reveals which program creates each window, doesn't work under Windows 95. Unfortunately, Microsoft didn't add the necessary Windows API function (GetWindowModuleFileName) until the arrival of Windows 98, and Windows NT with SP3. Windows Watcher will still run under older 32-bit versions of Windows. But the window creator feature will be disabled.
Other readers have asked for more information about a window's creator. For now, Window Watcher only tells program's disk file name. But another Power Tool, the venerable Version Browser, spills the beans.
With this program you'll be able to tell who wrote each program on your disks, when they were written, what product they belong to, the program's purpose, and much more. In addition to programs (.EXE files), the Version Browser also lifts the covers off most drivers, DLLs, ActiveX controls, and other mysterious Windows files.
If you'd like to see the Version Browser in action, download your free copy at https://www.karenware.com/powertools/ptbrowse. As always, you can also download its VB source code, for your further edification.