Simplemente ejecutamos :
lngX = Shell("Rundll32.exe shell32.dll,Control_RunDLL NombreCpl.cpl @X,Y")
El NombreCpl
Como algunos de ellos contienen varias "utilidades" podremos indicar con el parámetro X la utilidad concreta que precisamos (en los que sólo tienen una debe ser cero).
Con el parámetro Y indicamos qué pestaña (si es que hay varias) queremos que esté activada.
Tanto X como Y comienzan en cero y no se tendrán en cuenta las añadidas por alguna utilidad (por ejemplo las que suelen añadir algunos drivers de vídeo en las propiedades de la pantalla).
Vamos a ver los distintos valores de NombreCpl y las combinaciones de X e Y que admite cada uno (si se omite información sobre X se entiende que debe ser cero).
access
Da acceso a la configuración de las Opciones de Accesibilidad>.
Y : 1=Teclado, 2=Sonido, 3=Display, 4=Ratón, 5=General.
desk
Da acceso a las Propiedades de Pantalla
Y : 0=Fondo, 1=Protector de pantalla, 2=Apariencia, 3=Configuración
intl
Da acceso al diálogo Propiedades de Configuración regional.
Y : 0=Configuración regional, 1=Número, 2=Moneda, 3=Hora, 4=Fecha
main
Con X = 0 da acceso a las propiedades del ratón.
Y : 0=Botones
Con X = 1 da acceso a las propiedades del teclado.
Y : 0=Velocidad, 1=Idioma, 2=General
Con X = 2 muestra la carpeta de Impresoras
Con X = 3 muestra la carpeta de Fuentes
Con X = 4 muestra las propiedades de Ahorro de Energía
sysdm
Con X = 0 da acceso a las Propiedades del Sistema.
Y : 0=General, 1 = Administrador de dispositivos, 2=Perfiles de hardware, 3=Rendimiento
Con X = 1 arranca el Asistente para agregar nuevo hardware
timedate
Da acceso a las Propiedades de Fecha y hora
Y : 0=Fecha y hora, 1=Zona horaria
modem
Con X = 0 e Y = add ejecuta el asistente Instalar Nuevo Módem.
mmsys
Con X = 0 da acceso a las Propiedades Multimedia
Y : 0=Audio, 1=Video, 2=Midi, 3=CD de música, 4=Avanzado
Con X = 1 da acceso a las Propiedades de Sonidos (del sistema).
appwiz
Da acceso a las Propiedades de Agregar o quitar programas.
Y : 1=Instalar o desinstalar, 2=Instalación de Windows, 3=Disco de inicio
netcpl
Da acceso al diálogo Red, pestaña de Configuración.
password
Da acceso al diálogo Propiedades de Contraseñas, pestaña Cambiar contraseñas
odbccp32
Arranca el Administrador de Odbc
joy
Da acceso a las propiedades de los controladores para juegos (joystick).
Y : 0=General, 1=Avanzadas
Si teneis problemas intentad la llamada sin los parámatros X e Y.
themes
Da acceso a la configuración de Temas de escritorio (MS Plus)
inetcpl
Da acceso a las Propiedades de internet del MS Internet Explorer.
Y : 0=General
mlcfg32
Da acceso a la página de propiedades de perfiles de Microsoft Exchange (Fax y correo)
wgpocpl
Da acceso a las propiedades de la administración de correo Microsoft.
powercfg
Da acceso a las propiedades de Ahorro de Energía
Si ejecutamos x = Shell("Rundll32.exe shell32.dll,Control_RunDLL") se abrirá la ventana del Panel de Control.
OTROS USOS DE RUNDLL32.EXE
Agregar impresora
Empleando el Rundll32 también podremos arrancar el Asistente para agregar impresora utilizando : x = Shell("rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter", vbNormalFocus)
Crear el icono de "Mi maletín"
Empleando el Rundll32 también podremos crear el icono de "Mi maletín" en el escritorio utilizando : x = Shell("rundll32.exe syncui.dll,Briefcase_Create")
Copiar disco
Podremos mostrar el diálogo de Copiar disco empleando x = Shell("rundll32.exe diskcopy.dll,DiskCopyRunDll", vbNormalFocus)
Acceso telefónico a redes
Podremos establecer una conexión empleando x = Shell("undll32.exe rnaui.dll,RnaDial NombreDeLaConexión). Si la conexión ya está establecida nos muestra la ventana de Estado de la misma.
Para ejecutar el asistente Bienvenido a Acceso telefónico a redes emplearemos : x = Shell("rundll32.exe rnaui.dll,RnaWizard")
Formatear disquete
Para arrancar el diálogo Formatear emplearemos x = Shell("rundll32.exe shell32.dll,SHFormatDrive")
Imprimir un documento HTML
Para imprimir un documento HTML emplearemos : x = Shell("rundll32.exe mshtml.dll,PrintHTML NombreDocumentoHTML")
Diálogo Abrir con
Para abrir el díalogo Abrir con para un fichero ejecutaremos : x = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL NombreFichero"). El nombre del fichero debe incluir la unidad y el directorio.
Instalar una salvapantallas
Podemos instalar un salvapantallas y mostrar su página de propiedades. Para ello debemos copiar el fichero .scr en windows\system y luego ejecutar : x = Shell("rundll32.exe desk.cpl,InstallScreenSaver c:\win\system\NombreFichero.scr")
Reiniciar windows
Podremos reiniciar windows empleando x = Shell("rundll32.exe user.exe,restartwindows") y salir de windows con x = Shell("rundll32.exe user.exe,exitwindows")