Overview of Control Manager Usage

 

The most important part is to understand how to either:

 

Use the RoboScripter,which is included in the Control Manager ZIP file, to dynamically generate the code

 

Or

 

Run the "Window Analysis" script (ANALYSIS.WBT), which is included in the Control Manager ZIP file.

 

First get the window that you want to control up on the screen. Next run the ANALYSIS.WBT script in another window, which when you select the title of the window you want to identify, will produce a report showing the unique control identifier IDs, names, and sequence numbers. You can then use this information in the functions included with the extender.

 

Background Information:

Basically all windows exist in a tree-structured list off a "parent" window. Each and every window (which includes buttons, radio buttons, check boxes, lists and *everything*) has an absolutely unique window handle. However the window handles change every time you run the program.

 

To do any thing with a window you first need the window handle. But as it is totally unpredictable, you need a way to determine the window handle when you need it.

 

Beside the handle, which is unique, windows have a number of other attributes which can be used to identify it. However these other attributes are not always unique, so you must pick and choose among them to decide what to do.

 

These other attributes are the windows name or title, the position in the list of windows (known as the sequence number), the type of window (known as the class) and the window identifier (known as the ident or ID).

 

By viewing the report produced by the "Window Analysis" script, you can determine some way to work down from the parent top windows (which is the window handle returned by DllHwnd) to the exact window you wish to modify.

 

You need to work down from the parent to the desired lower level "child" window. Use the cWndByxxx functions to do this.

 

 

Listed by ease-of-use (easiest/best choice to most complex):

cWndById

cWndByName

cWndByClass

cWndBySeq

 

First, I see if a window at a particular level has a unique ID. If so I prefer to use that. If two windows at the same level have the same ID, then I see if the window names (or titles) are different. If not, then I check the class of the windows. And finally resort to the sequence number of the window.

 

I don't like sequence numbers as they can quickly and mysteriously change when you least expect it.

 

 

 

What is the Control Manager Extender?

Types of Controls

Tutorial

RoboScripter Tips and tricks