Cuando se ejecuta una aplicación, a veces requiere requisitos especiales para el entorno del sistema. Por ejemplo, en una aplicación de base de datos Delphi, es posible que deba configurar el nombre de la fuente de datos BDE (Borland Database Engine) o ODBC (DSN: Nombre de la fuente de datos; en una aplicación de red, es posible que deba configurar los ajustes de configuración de la red, Módem); configuración de propiedades o acceso telefónico del usuario. La cuenta de conexión y la contraseña se configuran y guardan en el sistema en CTI (Computadora-Telefonía); Integración) es posible que sea necesario configurar las propiedades de marcación del teléfono; en el programa del juego es posible que sea necesario configurar el controlador multimedia o del juego, etc. En este momento, es necesario cambiar la configuración del entorno del sistema Windows para adaptarla a los requisitos para el funcionamiento normal de la aplicación. Cuando la aplicación no puede configurar el entorno por sí sola, es posible que se le solicite al usuario del software que participe y ayude a completar la configuración.
La mayoría de las configuraciones del sistema de Win9X/NT se realizan en el panel de control. Podemos pedirle al usuario que abra el panel de control y busque los elementos correspondientes para configurar. En este momento, el usuario debe estar familiarizado con el panel de control. También podemos abrir automáticamente el panel de control para el usuario en el programa. y seleccione los elementos correspondientes. En este momento, todo lo que el usuario tiene que hacer es realizar la configuración. El último método es sin duda más amigable y puede mejorar la eficiencia del trabajo del usuario.
La mayoría de las configuraciones del proyecto en el panel de control corresponden a un archivo CPL en el directorio Sistema de Windows. Por ejemplo, el archivo correspondiente al atributo "Internet" es InetCpl.cpl, el archivo correspondiente al atributo "Multimedia" es MmSys. cpl, etc. Al llamar a estos archivos, se puede abrir la ventana de configuración de propiedad correspondiente e incluso puede saltar a la página de propiedad correspondiente, como la página de propiedad "Conexión" de la propiedad "Internet", lo que reduce efectivamente los pasos operativos para los usuarios de software.
El formato de llamada del archivo CPL es "RunDLL32.exe Shell32.dll, Control_RunDLL CPLFile.cpl, ItemNo" (consulte el valor predeterminado de HKEY_CLASSES_ROOTcplfileshellcpopencommand en el registro), donde CPLFile.cpl es el archivo CPL y ItemNo es el número de elemento. . En un programa Delphi, puede utilizar la función WinExec o CreatePRocess para llamar al archivo CPL, llamando así a los elementos de configuración del panel de control. Si desea llamar a la página de propiedades "Conexión" de la propiedad "Internet" para configurar la cuenta y la contraseña para una conexión de acceso telefónico, puede utilizar la declaración "WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl ,,3',," SW_SHOWNORMAL);"; Para resolver la interpretación de la entrada del año de dos dígitos en el problema 2000, debe llamar a la página de propiedades "Fecha" de "Configuración regional", puede usar la declaración: "WinExec('RunDLL32.exe Shell32 .dll,Control_RunDLL Intl.cpl, ,4',, SW_SHOWNORMAL);".
La lista de sentencias correspondientes a las llamadas de configuración de cada elemento del panel de control es la siguiente:
//Abrir panel de control
WinExec('RunDLL.exe Shell32.DLL,Control_RunDLL',SW_SHOWNORMAL);
//Administrador de fuente de datos ODBC de 32 bits, fuente de datos ODBC, configuración del controlador ODBC
//No se proporcionan parámetros para distinguir las seis páginas de propiedades de "DSN de usuario", "DSN de sistema", "DSN de archivo", "Controlador ODBC", "Seguimiento" y "Acerca de"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL ODBCCP32.CPL',SW_SHOWNORMAL);
// Administrador BDE
//No se proporcionan parámetros para distinguir entre las dos páginas de propiedades de "Bases de datos" y "Configuración"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL BdeAdmin.CPL',SW_SHOWNORMAL);
//Atributo de Internet, puede tener el parámetro ItemNo
//Página de propiedades "General"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "Seguridad"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,1', SW_SHOWNORMAL);
//Página de propiedades "Contenido"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "Conexión"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,3', SW_SHOWNORMAL);
//Página de propiedades "Programa"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,4', SW_SHOWNORMAL);
//Página de propiedades "avanzada"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,5', SW_SHOWNORMAL);
//Propiedades de marcación telefónica, no se proporcionan parámetros para distinguir entre las dos páginas de propiedades de "Mi ubicación" y "Controlador de voz del teléfono"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Telephon.cpl', SW_SHOWNORMAL);
//Configuración de administración de energía, no se proporcionan parámetros para distinguir las dos páginas de propiedades de "Plan de energía" y "Avanzado"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PowerCfg.cpl', SW_SHOWNORMAL);
//Configuración del módem, no se proporcionan parámetros para distinguir entre las páginas de propiedades "General" y "Diagnóstico"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Modem.cpl', SW_SHOWNORMAL);
//Configuración multimedia, puede tener el parámetro ItemNo
//Página de propiedades "Audio"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "Vídeo"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,1', SW_SHOWNORMAL);
//Página de propiedades "MIDI"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "CD de música"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,3', SW_SHOWNORMAL);
//Página de propiedades "Dispositivo"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,4', SW_SHOWNORMAL);
//Configuración de opciones auxiliares, puede tener el parámetro ItemNo
//Página de propiedades "Teclado"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,1',SW_SHOWNORMAL);
//Página de propiedades "Sonido"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "Mostrar"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,3', SW_SHOWNORMAL);
//Página de propiedades "Ratón"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,4', SW_SHOWNORMAL);
//Página de propiedades "General"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,5', SW_SHOWNORMAL);
//Configuración de contraseña, no se proporcionan parámetros para distinguir entre las dos páginas de propiedades de "Cambiar contraseña" y "Modificar configuración de usuario"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PassWord.cpl', SW_SHOWNORMAL);
//Configuración regional, puede tener el parámetro ItemNo
//Página de propiedades "Configuración regional"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "Número"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,1', SW_SHOWNORMAL);
//Página de propiedades "Moneda"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "Hora"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,3', SW_SHOWNORMAL);
//Página de propiedades "Fecha"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,4', SW_SHOWNORMAL);
//Configuración de fecha/hora, puede tener el parámetro ItemNo
//Página de propiedades "Fecha y hora"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "Zona horaria"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,1', SW_SHOWNORMAL);
// Configuración del mouse, no se proporcionan parámetros para distinguir las tres páginas de propiedades de "Botón", "Puntero" y "Mover"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Main.cpl', SW_SHOWNORMAL);
//Agregar/eliminar configuración del programa, parámetro opcional ItemNo
//Página de propiedades "Instalación/Desinstalación"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,1', SW_SHOWNORMAL);
//Página de propiedades "Windows Installer"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "Disco de arranque"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,3', SW_SHOWNORMAL);
//Configuración de red, no se proporcionan parámetros para distinguir las tres páginas de propiedades de "Configuración", "Identificación" y "Control de acceso"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL NetCpl.cpl', SW_SHOWNORMAL);
//Configuración del sistema,
//Página de propiedades "General", puede tener el parámetro ItemNo
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "Administrador de dispositivos"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,1', SW_SHOWNORMAL);
//Página de propiedades "Perfil de hardware"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "Rendimiento"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,3', SW_SHOWNORMAL);
//Configuración de visualización, puede tener el parámetro ItemNo
//Página de propiedades "Fondo"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "protector de pantalla"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,1', SW_SHOWNORMAL);
//Página de propiedades "Apariencia"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,2', SW_SHOWNORMAL);
//Página de propiedades "Configuración"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,3', SW_SHOWNORMAL);
//Configuración del controlador de juego, puede tener el parámetro ItemNo
//Página de propiedades "General"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,0', SW_SHOWNORMAL);
//Página de propiedades "avanzada"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,1', SW_SHOWNORMAL);
//Configuración del escáner y la cámara digital, no se proporcionan parámetros para distinguir las dos páginas de propiedades de "Dispositivo" y "Configuración de grabación"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL StiCpl.cpl', SW_SHOWNORMAL);
El programa anterior fue depurado y aprobado bajo PWIN98+DELPHI3.0.