Have you ever needed to open a Windows dialog such as Internet Properties, New Hardware, Modem Properties or any other dialog you can find in the Control Panel? Well, it's very simple, onve you know the trick.
All these dialogs are implemented in files with the CPL extension. (They're actually DLLs with their extension changed.) All you have to do is call the appropriate function in these DLLs. Windows provides an application called "rundll32.exe" - located in Windows main directory - that allows you to do that. For example, to open the Mouse Properties dialog you should write this line in the Run dialog:
If you know the correct syntax, you can open these dialogs from your applications as well. here is a routine that can open most of the Control Panel dialogs. It takes a value specified in a Enum list and uses it to determine the correct string to pass to "rundll32.exe", then passes the full commnad line to the Shell function:
rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
Public Enum mbDialogType
Sub OpenWindowsDialog(ByVal mbDialog As mbDialogType)
Dim s As String
Select Case mbDialog
Case mbNewHardware: s = "sysdm.cpl @1"
Case mbAddRemove: s = "appwiz.cpl,,1"
Case mbDateTimeProp: s = "timedate.cpl"
Case mbDisplayProp: s = "desk.cpl,,0"
Case mbInternetProp: s = "inetcpl.cpl,,0"
Case mbGameProp: s = "joy.cpl"
Case mbKeyboardProp: s = "main.cpl @1"
Case mbModemProp: s = "modem.cpl"
Case mbMouseProp: s = "main.cpl @0"
Case mbMultimediaProp: s = "mmsys.cpl,,0"
Case mbNetworkProp: s = "netcpl.cpl"
Case mbPasswordProp: s = "password.cpl"
Case mbInternationalProp: s = "intl.cpl,,0"
Case mbSoundProp: s = "mmsys.cpl @1"
Case mbSystemProp: s = "sysdm.cpl,,0"
Shell "rundll32.exe shell32.dll,Control_RunDLL " & s, 5