| 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 |
|