A Single-Thread Example

The example presented here is simple in structure: it watches for all mouse messages and displays each message in the text box. Figure 13-3 shows a screenshot of this application. To use this application, simply click the hook button contained in the MOUSE frame. This will install the WH_MOUSE hook and start displaying the mouse messages in the text box. The text box will fill up rather quickly as the mouse messages are fired, even though the mouse must be within the borders of the window for this hook to capture a mouse message. A system-wide mouse hook will catch all mouse messages for all windows that are visible on the screen, including the desktop; had we implemented it, output from this hook to the text box would have been completely overwhelming.

A screenshot of the single-threaded mouse hook application

Figure 13-3. A screenshot of the single-threaded mouse hook application

Table 13-2 presents the nondefault properties of the form and its controls.

Table 13-2. Nondefault Properties of the Form and Its Controls

Object Type

Property Name

Property Value

Form

Name

Form2

Form

Caption

“WH_MOUSE Hook Demo”

Form

Top

420

Form

Left

132

Form

Height

3555

Form

Width

8655

Frame

Caption

“MOUSE”

Frame

Name

Frame1

Frame

Top

120

Frame

Left

120

Frame

Height

1335

Frame

Width

1155

TextBox

MultiLine

True

TextBox

Top

240

TextBox

Left

1380

TextBox

Height

3255

TextBox

Width

7215 ...

Get Subclassing and Hooking with Visual Basic now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.