http://www.rinconcitodelphi.com/trucos/IApi28.htm
Usaremos esta función:
function TForm1.Control(const Parametros: String): THandle;
begin
Result := ShellExecute(Application.MainForm.Handle,
nil,
Pchar('c:\windows\rundll32.exe'),
Pchar(Parametros),
nil,
SW_SHOW);
end;
Nota JLF: Atención con la ruta que se pasa como parámetro al primer Pchar. Por ej. en XP lo normal es 'c:\windows\system32\rundll32.exe'
No te olvides de declararla en tu form y de añadir 'ShellApi' en el uses de tu form:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function Control(const Parametros: String): THandle;
public
{ Public declarations }
end;
Con ella podremos hacer muchas cosillas:
-Abrir el Panel de Control:
Control('shell32.dll,Control_RunDLL');
-Mostrar el diálogo 'Agregar/Quitar programas' (Instalar/Desinstalar)
Control('shell32.dll,Control_RunDLL appwiz.cpl,,1');
-Mostrar el diálogo 'Agregar/Quitar componentes de windows' (Instalar/Desinstalar)
Control('shell32.dll,Control_RunDLL appwiz.cpl,,2');
-Mostrar el diálogo 'Crear Disco de sistema'
Control('shell32.dll,Control_RunDLL appwiz.cpl,,3');
-Mostrar el diálogo 'Propiedades de pantalla (Fondo)'
Control('shell32.dll,Control_RunDLL desk.cpl,,0');
-Mostrar el diálogo 'Propiedades de pantalla (Protector de Pantalla)'
Control('shell32.dll,Control_RunDLL desk.cpl,,1');
-Mostrar el diálogo 'Propiedades de pantalla (Apariencia)'
Control('shell32.dll,Control_RunDLL desk.cpl,,2');
-Mostrar el diálogo 'Propiedades de pantalla (Apariencia)'
Control('shell32.dll,Control_RunDLL desk.cpl,,3');
-Mostrar el diálogo 'Busqueda rápida'
Control('shell32.dll,Control_RunDLL findfast.cpl');
-Mostrar el diálogo 'Internet (General)'
Control('shell32.dll,Control_RunDLL inetcpl.cpl,,0');
-Mostrar el diálogo 'Internet (Seguridad)'
Control('shell32.dll,Control_RunDLL inetcpl.cpl,,1');
-Mostrar el diálogo 'Internet (Contenido)'
Control('shell32.dll,Control_RunDLL inetcpl.cpl,,2');
-Mostrar el diálogo 'Internet (Conexion)'
Control('shell32.dll,Control_RunDLL inetcpl.cpl,,3');
-Mostrar el diálogo 'Internet (Programas)'
Control('shell32.dll,Control_RunDLL inetcpl.cpl,,4');
-Mostrar el diálogo 'Internet (Avanzado)'
Control('shell32.dll,Control_RunDLL inetcpl.cpl,,5');
-Mostrar el diálogo 'Propiedades de Configuracion Regional (Configuracion Regional)'
Control('shell32.dll,Control_RunDLL intl.cpl,,0');
-Mostrar el diálogo 'Propiedades de Configuracion Regional (Numero)'
Control('shell32.dll,Control_RunDLL intl.cpl,,1');
-Mostrar el diálogo 'Propiedades de Configuracion Regional (Moneda)'
Control('shell32.dll,Control_RunDLL intl.cpl,,2');
-Mostrar el diálogo 'Propiedades de Configuracion Regional (Hora)'
Control('shell32.dll,Control_RunDLL intl.cpl,,3');
-Mostrar el diálogo 'Propiedades de Configuracion Regional (Fecha)'
Control('shell32.dll,Control_RunDLL intl.cpl,,4');
-Mostrar el diálogo 'Dispositivos de Juego (General)'
Control('shell32.dll,Control_RunDLL joy.cpl,,0');
-Mostrar el diálogo 'Dispositivos de Juego (Avanzado)'
Control('shell32.dll,Control_RunDLL joy.cpl,,0');
-Mostrar el diálogo 'Raton'
Control('shell32.dll,Control_RunDLL main.cpl @0');
-Mostrar el diálogo 'Teclado'
Control('shell32.dll,Control_RunDLL main.cpl @1');
-Mostrar el diálogo 'Impresora'
Control('shell32.dll,Control_RunDLL main.cpl @1');
-Mostrar el diálogo 'Fuentes'
Control('shell32.dll,Control_RunDLL main.cpl @1');
-Mostrar el diálogo 'Propiedades Multimedia (Sonido)'
Control('shell32.dll,Control_RunDLL mmsys.cpl,,0');
-Mostrar el diálogo 'Propiedades Multimedia (Video)'
Control('shell32.dll,Control_RunDLL mmsys.cpl,,1');
-Mostrar el diálogo 'Propiedades Multimedia (Midi)'
Control('shell32.dll,Control_RunDLL mmsys.cpl,,2');
-Mostrar el diálogo 'Propiedades Multimedia (Cd audio)'
Control('shell32.dll,Control_RunDLL mmsys.cpl,,3');
-Mostrar el diálogo 'Propiedades Multimedia (Dispositivos)'
Control('shell32.dll,Control_RunDLL mmsys.cpl,,3');
-Mostrar el diálogo 'Propiedades de red'
Control(,'shell32.dll,Control_RunDLL netcpl.cpl');
-Mostrar el diálogo 'Asistente para conexión de red'
Control(,'rnaui.dll,RnaWizard');
-Mostrar el diálogo 'Administracion OBDC'
Control(,'shell32.dll,Control_RunDLL odbccp32.cpl'W);
-Mostrar el diálogo 'Passwords'
Control(,'shell32.dll,Control_RunDLL odbccp32.cpl'W);
-Mostrar el diálogo 'Sistema (General)'
Control('shell32.dll,Control_RunDLL sysdm.cpl,,0');
-Mostrar el diálogo 'Sistema (Dispositivos)'
Control('shell32.dll,Control_RunDLL sysdm.cpl,,1');
-Mostrar el diálogo 'Sistema (Perfiles hardware)'
Control('shell32.dll,Control_RunDLL sysdm.cpl,,2');
-Mostrar el diálogo 'Sistema (Rendimiento)'
Control('shell32.dll,Control_RunDLL sysdm.cpl,,3');
-Mostrar el diálogo 'Asistente hardware'
Control('shell32.dll,Control_RunDLL sysdm.cpl @1');
-Mostrar el diálogo 'Asistente para añadir impresoras'
Control('shell32.dll,SHHelpShortcuts_RunDLL AddPrinter');
-Mostrar el diálogo 'Temas de escritorio'
Control(,'shell32.dll,Control_RunDLL themes.cpl');
-Mostrar el diálogo 'Fecha/Hora (General)'
Control('shell32.dll,Control_RunDLL timedate.cpl');
-Mostrar el diálogo 'Fecha/Hora (Zona horaria)'
Control('shell32.dll,Control_RunDLL timedate.cpl,,/f');
-Mostrar el diálogo 'Asistente para añadir modem'
Control('shell32.dll,Control_RunDLL modem.cpl,,add');
-Mostrar el diálogo 'Instalar TCP/IP'
Control('setupapi.dll,InstallHinfSection MSTCP.Install 4 nettrans.inf');
-Mostrar el diálogo 'Instalar Adaptador telefonico para redes'
Control('setupx.dll,InstallHinfSection RNA 12345 rna.inf');
-Mostrar el diálogo 'Llamar a traves del acceso telefonico'
Control('rnaui.dll,RnaDial DUNConnectionName');