Lorsqu'une application est en cours d'exécution, elle nécessite parfois des exigences particulières en matière d'environnement système. Par exemple, dans une application de base de données Delphi, vous devrez peut-être définir le nom de la source de données BDE (Borland Database Engine) ou ODBC (DSN : Data Source Name). Dans une application réseau, vous devrez peut-être définir les paramètres de configuration réseau, Modem ; les paramètres de propriété ou la connexion utilisateur. Le compte de connexion et le mot de passe sont définis et enregistrés dans le système dans CTI (Computer-Telephony). Intégration) l'application peut avoir besoin de définir les propriétés de numérotation téléphonique ; dans le programme de jeu, il peut être nécessaire de définir le contrôleur multimédia ou de jeu, etc. À ce stade, vous devez modifier les paramètres d'environnement du système Windows pour vous adapter aux exigences du fonctionnement normal de l'application. Lorsque l'application ne peut pas configurer l'environnement par elle-même, l'utilisateur du logiciel peut être amené à participer et à aider à terminer la configuration.
La plupart des paramètres système de Win9X/NT sont effectués dans le panneau de configuration. Nous pouvons demander à l'utilisateur d'ouvrir lui-même le panneau de contrôle et de trouver les éléments correspondants à configurer. À ce stade, l'utilisateur doit se familiariser avec le panneau de contrôle. Nous pouvons également ouvrir automatiquement le panneau de contrôle pour l'utilisateur dans le programme. et sélectionnez les éléments correspondants. À ce stade, tout ce que l'utilisateur a à faire est de configurer les paramètres. Cette dernière méthode est sans aucun doute plus conviviale et peut améliorer l’efficacité du travail de l’utilisateur.
La plupart des paramètres du projet dans le panneau de configuration correspondent à un fichier CPL dans le répertoire Système de Windows. Par exemple, le fichier correspondant à l'attribut "Internet" est InetCpl.cpl, le fichier correspondant à l'attribut "Multimédia" est MmSys. cpl, etc. En appelant ces fichiers, la fenêtre de configuration de propriété correspondante peut être ouverte, et vous pouvez même accéder à la page de propriétés correspondante telle que la page de propriétés « Connexion » de la propriété « Internet », réduisant ainsi les étapes de fonctionnement pour les utilisateurs de logiciels.
Le format d'appel du fichier CPL est "RunDLL32.exe Shell32.dll,Control_RunDLL CPLFile.cpl,,ItemNo" (voir la valeur par défaut de la commande HKEY_CLASSES_ROOTcplfileshellcpopen dans le registre), où CPLFile.cpl est le fichier CPL et ItemNo est le numéro d'élément. . Dans un programme Delphi, vous pouvez utiliser la fonction WinExec ou CreatePRocess pour appeler le fichier CPL, appelant ainsi les éléments de configuration du panneau de configuration. Si vous souhaitez appeler la page de propriété "Connexion" de la propriété "Internet" pour définir le compte et le mot de passe d'une connexion commutée, vous pouvez utiliser l'instruction "WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl ,,3',," SW_SHOWNORMAL);"; Pour résoudre l'interprétation de la saisie de l'année à deux chiffres dans le problème 2000, vous devez appeler la page de propriétés "Date" de "Paramètres régionaux", vous pouvez utiliser l'instruction : "WinExec('RunDLL32.exe Shell32 .dll,Control_RunDLL Intl.cpl, ,4',, SW_SHOWNORMAL);".
La liste des instructions correspondant aux appels de paramétrage de chaque élément du panneau de contrôle est la suivante :
//Ouvrir le panneau de configuration
WinExec('RunDLL.exe Shell32.DLL,Control_RunDLL',SW_SHOWNORMAL);
//Gestionnaire de sources de données ODBC 32 bits, source de données ODBC, paramètres du pilote ODBC
//Aucun paramètre n'est fourni pour distinguer les six pages de propriétés "User DSN", "System DSN", "File DSN", "ODBC Driver", "Tracking" et "About"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL ODBCCP32.CPL',SW_SHOWNORMAL);
//Administrateur BDE
//Aucun paramètre n'est fourni pour distinguer les deux pages de propriétés "Bases de données" et "Configuration"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL BdeAdmin.CPL',SW_SHOWNORMAL);
// Attribut Internet, peut avoir le paramètre ItemNo
//Page de propriétés "Général"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Sécurité"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,1', SW_SHOWNORMAL);
//Page de propriétés "Contenu"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "Connexion"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,3', SW_SHOWNORMAL);
//Page de propriétés "Programme"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,4', SW_SHOWNORMAL);
//Page de propriétés "Avancé"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,5', SW_SHOWNORMAL);
// Propriétés de numérotation téléphonique, aucun paramètre n'est fourni pour distinguer les deux pages de propriétés « Ma position » et « Pilote vocal du téléphone »
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Telephon.cpl', SW_SHOWNORMAL);
//Paramètres de gestion de l'alimentation, aucun paramètre n'est fourni pour distinguer les deux pages de propriétés "Power Plan" et "Advanced"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PowerCfg.cpl', SW_SHOWNORMAL);
//Paramètres du modem, aucun paramètre n'est fourni pour distinguer les pages de propriétés "Général" et "Diagnostic"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Modem.cpl', SW_SHOWNORMAL);
//Paramètres multimédia, peut avoir le paramètre ItemNo
//Page de propriétés "Audio"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Vidéo"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,1', SW_SHOWNORMAL);
//Page de propriétés "MIDI"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "CD Musique"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,3', SW_SHOWNORMAL);
//Page de propriétés "Périphérique"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,4', SW_SHOWNORMAL);
//Paramètres des options auxiliaires, peuvent avoir le paramètre ItemNo
//Page de propriétés "Clavier"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,1',SW_SHOWNORMAL);
//Page de propriétés "Son"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "Affichage"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,3', SW_SHOWNORMAL);
//Page de propriétés "Souris"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,4', SW_SHOWNORMAL);
//Page de propriétés "Général"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,5', SW_SHOWNORMAL);
//Paramètre du mot de passe, aucun paramètre n'est fourni pour distinguer les deux pages de propriétés "Modifier le mot de passe" et "Modifier la configuration utilisateur"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PassWord.cpl', SW_SHOWNORMAL);
//Paramètres régionaux, peuvent avoir le paramètre ItemNo
//Page de propriétés "Paramètres régionaux"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Numéro"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,1', SW_SHOWNORMAL);
//Page de propriétés "Devise"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "Heure"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,3', SW_SHOWNORMAL);
//Page de propriétés "Date"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,4', SW_SHOWNORMAL);
//Paramètre date/heure, peut avoir le paramètre ItemNo
//Page de propriétés "Date et heure"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Fuseau horaire"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,1', SW_SHOWNORMAL);
//Paramètres de la souris, aucun paramètre n'est fourni pour distinguer les trois pages de propriétés "Bouton", "Pointeur" et "Déplacer"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Main.cpl', SW_SHOWNORMAL);
//Ajouter/supprimer des paramètres de programme, paramètre ItemNo facultatif
//Page de propriétés "Installation/Désinstallation"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,1', SW_SHOWNORMAL);
//Page de propriétés "Windows Installer"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "Disque de démarrage"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,3', SW_SHOWNORMAL);
//Paramètres réseau, aucun paramètre n'est fourni pour distinguer les trois pages de propriétés "Configuration", "Identification" et "Contrôle d'accès"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL NetCpl.cpl', SW_SHOWNORMAL);
//Paramètres système,
//Page de propriétés "Général", peut avoir le paramètre ItemNo
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Gestionnaire de périphériques"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,1', SW_SHOWNORMAL);
//Page de propriétés "Profil matériel"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "Performances"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,3', SW_SHOWNORMAL);
//Paramètres d'affichage, peut avoir le paramètre ItemNo
//Page de propriétés "Arrière-plan"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Économiseur d'écran"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,1', SW_SHOWNORMAL);
//Page de propriétés "Apparence"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,2', SW_SHOWNORMAL);
//Page de propriétés "Paramètres"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,3', SW_SHOWNORMAL);
//Paramètres du contrôleur de jeu, peut avoir le paramètre ItemNo
//Page de propriétés "Général"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,0', SW_SHOWNORMAL);
//Page de propriétés "Avancé"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,1', SW_SHOWNORMAL);
//Paramètres du scanner et de l'appareil photo numérique, aucun paramètre n'est fourni pour distinguer les deux pages de propriétés « Périphérique » et « Paramètres d'enregistrement »
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL StiCpl.cpl', SW_SHOWNORMAL);
Le programme ci-dessus a été débogué et passé sous PWIN98+DELPHI3.0.