A Low-Level Hook Example

The following example uses the WH_KEYBOARD_LL hook in a pure VB application, which is shown in Figure 12-5. You do not have to use C++ code to install and use this hook. In fact, in many instances you can substitute this hook for a system-wide WH_KEYBOARD hook; this way, you do not have to use any language other than VB.

Screenshot of low-level keyboard hook application

Figure 12-5. Screenshot of low-level keyboard hook application

Table 12-3 presents the nondefault properties of the form and its controls.

Table 12-3. Nondefault Properties of the Form and Its Controls

Object Type

Property Name

Property Value

Form

Name

Form2

Form

Caption

“WH_KEYBOARD_LL Hook Application”

Form

BorderStyle

3-Fixed Dialog

Form

Top

420

Form

Left

132

Form

Height

1440

Form

Width

4065

Command Button1

Name

cmdHook

Command Button1

Caption

“hook”

Command Button1

Top

120

Command Button1

Left

1530

Command Button1

Height

315

Command Button1

Width

915

Command Button2

Name

cmdUnHook

Command Button2

Caption

“unhook”

Command Button2

Top

600

Command Button2

Left

1530

Command Button2

Height

315

Command Button2

Width

915

This application sets a system-wide, low-level keyboard hook and discards any DEL key presses. More specifically, it discards the WM_KEYDOWN and WM_KEYUP messages for the DEL key.

To see how this application operates, open up several copies of Notepad or another word ...

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.