Tip 193: Launching Windows 95 Control Panel Applets in Visual Basic

December 5, 1995

This article explains how to launch an applet in Microsoft? Windows? 95
Control Panel from within a Microsoft Visual Basic? application.

Using the RunDLL32 Utility to Launch Applets
The Control Panel program in the Microsoft? Windows? 95 operating system
allows you to customize various aspects of the operating system. For
example, by running the Printers applet, you can add, remove, or select
a new default printer.

A special utility included with Windows 95 allows you to execute a
specific function (that is, a Control Panel applet) from within your
own Microsoft Visual Basic? application. This utility is RunDLL32. You
can use the RunDLL32 utility to execute the Control_RunDLL function in
the Shell32.DLL library. To execute a Control Panel applet, you use a
statement such as:

X = Shell("Rundll32.exe shell32.dll,Control_RunDLL main.cpl @2")

This statement uses the Shell command to execute the Printers applet in
Control Panel. In a Visual Basic application, this would give your user
the ability to select a new default printer, check a printer's status,
and add or remove printer objects from the Windows 95 operating system.

When using the Shell command to launch a Control Panel applet, you must
be careful to use the exact syntax for the RunDLL32 utility. The
capitalization of all components in the statement must not be altered
in any wayotherwise, an error will occur.

Each time you want to launch a Control Panel applet, your Visual Basic
statement must include the syntax used above. In other words, you need
only to substitute the name of the .CPL file for "main.cpl" used above
and specify the number of the particular applet you want to execute.
Also, if that applet requires additional command-line parameters, you
would specify these as the last parameter to the statement.

Each applet contained in a .CPL file is numbered starting from zero. If
you don't specify which applet you want to execute with the @value
parameter, the first applet (@0) is the one that is launched.

The following list provides a starting point for showing how to launch
the different applets found in Control Panel.

To launch Control Panel itself:

rundll32.exe shell32.dll,Control_RunDLL

To launch the Accessibility Options applet:

. General

rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5

. Display

rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3

. Keyboard

rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1

. Mouse

rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4

. Sound

rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2

To launch the Regional Settings applet:

. Background

rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

. Appearance

rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2

. Screen Saver

rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1

. Settings

rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3

To launch the Date/Time applet:

rundll32.exe shell32.dll,Control_RunDLL timedate.cpl

Example Program
This program shows how to launch the Printers applet in Control Panel
from within a Visual Basic application.

 1. Create a new project in Visual Basic. Form1 is created by default.
 2. Add a Command Button control to Form1. Command1 is created by default.
 3. Add the following code to the Click event for Command1 (note that the
    Shell statement must be typed exactly as shown):

Private Sub Command1_Click()
    X = Shell("Rundll32.exe shell32.dll,Control_RunDLL main.cpl @2")
End Sub

Run the example program by pressing F5. Click the command button.
The Printers applet in Control Panel is launched.