Online Manuals
WinID Home
Version: 2.2.2 (Deprecated)
(To download newer version of WinID click here...)

 

Before reading this manual you should understand who can actually use this WinID utility. As part of its creation story I will tell you that I started it back in 1999 as my own auxiliary tool (with a poor GUI). I simply needed it to learn how Microsoft positions windows and common controls in their programs. This also could provide me with a very essential info on window titles (hidden text:)), window handles (perfect for SoftICE debugging), classes, and most importantly, window styles. Later I developed it to outline the actual controls (as I was always perplexed by Spy++'s poor visualization), which turned out to be very handy. I also added feature to recognize many of the Microsoft Common Controls and their specific styles.

So, to answer the initial question in the above paragraph, who would benefit from this program, I would say that:

  • MS Windows programmers will find it very useful. If you are the one, I won't explain why you need to know so often how windows and controls are positioned in a certain application, also what styles and classes were employed there. It is also a good way to visually debug your own project;
  • MS Windows beginner programmers (newbies :)) will definitely need it to visually learn how to create and lay out controls in Graphic User Interface (GUI) for Windows applications. I wish I had it when I learned it all! This would make it so easy;
  • One of the ways to use this program is to get the hidden text out of the windows that are not easily accessible. (Although, it won't be always possible in Windows XP since Microsoft have protected some Edit Boxes pretty well! So, be aware, it's not a glitch. [Use version 3.0 or later to overcome this issue]);
  • It sounds trivial, but the first thing I did when I had that "Highlight Selected Control" feature made, I studied the way Desktop and other Windows programs are built. It made me better understand many things about Windows!

 

OK, without being too windy, I'll explain how to use WinID. First of all, it is compatible with almost every family of MS Windows OS (95/98/ME/NT/2K/XP). I created it for Win98 and now updated for WinXP. I also added some new styles that appeared recently. (They are also included in MSDN 2003 documentation and used by MS VC++ 7.0 NET).

WinID 2.2.2 does not require installation. It can run from any folder you extract it into. It does not need any external files to run (well, except of basic Windows system .dll's, of course). It won't create any external files and won't modify your settings. It uses System Registry though to store its settings and your preferences, like for instance, it remembers the position of the readout window, its size and your choice of some options. Since WinID is freeware it won't make any pop-ups after a certain period of time, nor it will try to go on-line or demand registration! WinID will never attempt to collect or send any information about you and your system and/or send it through the Internet.

To start WinID simply run the WinID.EXE file from any location. (Later you can move the file somewhere else without losing functionality.) When WinID loads up you will see its readout window. This will look like the one below (please note that this is the Windows XP screen shot and if you have different OS the window outlines may look differently):

Initially WinID is set to be the "Topmost Window", which means that if it loses focus (i.e., you start working with some other window) it will still be visible. In case you need it to "go away" from the screen you can either minimize it, or close it. You can also disable "Topmost Window" feature (I'll tell you how  later).

After starting WinID simply point mouse anywhere on the screen and WinID will dynamically update its readout to display the information about control/window that you pointed to. First it gives you the coordinates of the mouse cursor hotspot (measured in pixels), then it provides the info about control/window that your mouse points to:

  • Class name (I won't explain what it means. To learn more about Windows terminology read MSDN documentation, and RegisterClassEx() function in this case);
  • If control/window Class is the system registered one (existing in WinUser.dll, commctrl.dll, etc.) and Auto Class Recognition option is enabled (see below) then WinID puts an asterisk (*) after its name and gives Win32 C++ #define variable name in red on the right-hand side of it;
  • It also provides a unique Window Handle (hexadecimal value), the one that is used by the OS (it stays unchanged for as long as control/window is not destroyed);
  • Atom Handle (hexadecimal value) associated with the Class;
  • Below you will see control/window Class Styles as the hexadecimal value and;
  • Right under it WinID will interpret the Class styles values with readable C++ variables. (Those highlighted in blue are active ones);
  • Title line gives you the window/control title. (For windows with the title bar this info is self-explanatory, for other controls though, this line will contain either text within them, like for Edit Boxes, for example, or the header message. The exact interpretation of the title will depend on the window/control Class);
  • If the pointed control/window has a parent window, WinID will provide its Class Name in parentheses on the next line of the readout pane, along with the Window Handle for it, marked as hWnd hexadecimal value;
  • Eventually, WinID provides you with the pointed control/window's styles as Style and Ex_Style (extended style) hexadecimal value;
  • Below it interprets control/window styles on the left side of the readout with a human-readable C++ Win32 variables; and extended control/window styles right below it (not shown on the screenshot above). In case WinID does not recognize a certain flag in the styles value, it will give a hexadecimal version of it, like 0x4;
  • On the right side of the styles section it gives control specific interpretation of the Style (Ex_Style) values. The exact values will depend on the control/window Class. In case WinID does not recognize a certain flag in the styles value, it will give a hexadecimal version of it, like 0x4.

To make any changes in the WinID settings right-click its readout pane (or press Esc keyboard button while WinID window has focus). You will see the popup menu:

Enabled options will be checked in the top part of the list:

  • "Topmost Window" when checked makes WinID readout stay on top of other windows (with the exception of some system emergency windows). This option will allow you to change keyboard focus to another window while still having WinID readout visible. To make WinID behave like a normal window uncheck this feature;
  • "Highlight Selected Control" is one of the most useful features of WinID. It is off initially (since it requires some additional system resources while being on, and involves often controls repainting, thus producing flicker). To enable it simply check this item. You will see a thin red box around each control/window that you point your mouse cursor to. This red box outlines the control/window currently described in the WinID readout pane so that you can visually see it. (SUGGESTION: I strongly recommend using this feature moderately and enable it only when you need it, as otherwise you may subject your desktop and other applications for unnecessary continuous redrawing, that may slow down your system and impair visibility.) WinID does not disable highlighting even when it's minimized;
  • "Auto Class Recognition" is on initially. This enables automatic translation of the control/window Class name into C++ Win32 variable;
  • "Constant Polling" when on makes WinID update its readout pane 10 times per second (this could be useful for rapidly changing controls). When this option is off WinID updates readout pane only when you move mouse pointer;
  • "Copy Data on Shift Key" when on enables copying of the readout pane data to the Clipboard upon Shift key stroke. This way you can Paste it to any text editor or edit box afterwards.

 

The "About" menu item brings up a window with the short version of this manual and the web link to receive WinID updates. "Classes" item lets you see the list of Windows Classes supported by WinID. "Exit" terminates WinID the same way as the close button does, "Cancel" hides this menu. To load up this on-line documentation select "Online Manual" from that menu (you must be connected to the Internet at that time).

In some cases a control/window could be hidden from you underneath another one. To get its info out press and hold Shift key down while pointing the mouse on it (WinID window must have keyboard focus at that moment though).

In case you need to turn the Auto Class Recognition feature off to manually see styles for a predefined class, you can do so in the right-click context menu (see above). After that you will have to select Class type being active at the moment. Press Ctrl key and while holding it down use Up and Down arrow keys to select one of the classes in the list. Once it's selected you will see its name in the top right corner of the readout window drawn in green. All the styles of controls/windows that you point your mouse cursor to will be reinterpreted for that particular class you selected. To revert to automatic WinID Class recognition enable the Auto Class Recognition feature from context menu.

So, this is the way how to use WinID. As you see it is relatively simple. Please let me know about any glitches that you may find in it, also feel free to post your comments and suggestions. Thank you for choosing WinID!


Announcement: WinID 3.0 was released!
We recommend that you use it instead of this deprecated version.
  Check other latest software FREE to download!
Report Errors and Glitches
Send Comment/Suggestion
This is the private web site. Copyright (c) 2003-2010
Last updated: September 3, 2010