Saat suatu aplikasi sedang berjalan, terkadang memerlukan persyaratan khusus untuk lingkungan sistem. Misalnya, dalam aplikasi database Delphi, Anda mungkin perlu mengatur nama sumber data BDE (Borland Database Engine) atau ODBC (DSN: Nama Sumber Data); dalam aplikasi jaringan, Anda mungkin perlu mengatur pengaturan konfigurasi jaringan, Modem pengaturan properti atau dial-up pengguna. Akun koneksi dan kata sandi diatur dan disimpan dalam sistem; Integrasi) aplikasi mungkin perlu mengatur properti panggilan telepon; dalam program permainan mungkin perlu mengatur multimedia atau pengontrol permainan, dll. Saat ini, Anda perlu mengubah pengaturan lingkungan sistem Windows untuk beradaptasi dengan persyaratan pengoperasian normal aplikasi. Jika aplikasi tidak dapat mengatur lingkungannya sendiri, pengguna perangkat lunak mungkin diminta untuk berpartisipasi dan membantu menyelesaikan pengaturan.
Sebagian besar pengaturan sistem Win9X/NT dilakukan di panel kontrol. Kami dapat meminta pengguna untuk membuka panel kontrol sendiri dan menemukan item yang sesuai untuk diatur. Saat ini, pengguna harus terbiasa dengan panel kontrol. Kami juga dapat secara otomatis membuka panel kontrol untuk pengguna dalam program dan pilih item yang sesuai. Saat ini, yang harus dilakukan pengguna hanyalah melakukan pengaturan. Cara terakhir ini tentu lebih ramah dan dapat meningkatkan efisiensi kerja pengguna.
Sebagian besar pengaturan proyek di panel kontrol berhubungan dengan file CPL di direktori Sistem Windows. Misalnya, file yang terkait dengan atribut "Internet" adalah InetCpl.cpl, file yang terkait dengan atribut "Multimedia" adalah MmSys. cpl, dll. Dengan memanggil file-file ini, jendela pengaturan properti yang sesuai dapat dibuka, dan Anda bahkan dapat melompat ke halaman properti yang sesuai seperti halaman properti "Koneksi" dari properti "Internet", yang secara efektif mengurangi langkah pengoperasian bagi pengguna perangkat lunak.
Format panggilan file CPL adalah "RunDLL32.exe Shell32.dll,Control_RunDLL CPLFile.cpl,,ItemNo" (lihat nilai default HKEY_CLASSES_ROOTcplfileshellcpopencommand di registri), dengan CPLFile.cpl adalah file CPL dan ItemNo adalah nomor item . Dalam program Delphi, Anda dapat menggunakan fungsi WinExec atau CreatePRocess untuk memanggil file CPL, sehingga memanggil item pengaturan panel kontrol. Jika Anda ingin memanggil halaman properti "Koneksi" dari properti "Internet" untuk mengatur akun dan kata sandi untuk koneksi dial-up, Anda dapat menggunakan pernyataan "WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl ,,3',," SW_SHOWNORMAL);"; Untuk menyelesaikan interpretasi input dua digit tahun pada soal 2000, Anda perlu memanggil halaman properti "Tanggal" dari "Pengaturan Regional", Anda dapat menggunakan pernyataan: "WinExec('RunDLL32.exe Shell32 .dll,Control_RunDLL Intl.cpl, ,4',, SW_SHOWNORMAL);".
Daftar pernyataan yang sesuai dengan panggilan pengaturan setiap item di panel kontrol adalah sebagai berikut:
//Buka panel kontrol
WinExec('RunDLL.exe Shell32.DLL,Control_RunDLL',SW_SHOWNORMAL);
//Manajer sumber data ODBC 32-bit, sumber data ODBC, pengaturan driver ODBC
//Tidak ada parameter yang disediakan untuk membedakan enam halaman properti "DSN Pengguna", "DSN Sistem", "DSN File", "Driver ODBC", "Pelacakan" dan "Tentang"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL ODBCCP32.CPL',SW_SHOWNORMAL);
//Administrator BDE
//Tidak ada parameter yang disediakan untuk membedakan antara dua halaman properti "Database" dan "Konfigurasi"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL BdeAdmin.CPL',SW_SHOWNORMAL);
//Atribut Internet, dapat memiliki parameter ItemNo
//halaman properti "Umum".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,0', SW_SHOWNORMAL);
//halaman properti "Keamanan".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,1', SW_SHOWNORMAL);
//halaman properti "Konten".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,2', SW_SHOWNORMAL);
//halaman properti "Koneksi".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,3', SW_SHOWNORMAL);
//halaman properti "Program".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,4', SW_SHOWNORMAL);
//Halaman properti "Lanjutan".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,5', SW_SHOWNORMAL);
//Properti panggilan telepon, tidak ada parameter yang disediakan untuk membedakan antara dua halaman properti "Lokasiku" dan "Driver Suara Telepon"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Telephon.cpl', SW_SHOWNORMAL);
//Pengaturan manajemen daya, tidak ada parameter yang disediakan untuk membedakan dua halaman properti "Power Plan" dan "Advanced"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PowerCfg.cpl', SW_SHOWNORMAL);
//Pengaturan modem, tidak ada parameter yang disediakan untuk membedakan antara halaman properti "Umum" dan "Diagnostik".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Modem.cpl', SW_SHOWNORMAL);
//Pengaturan multimedia, dapat memiliki parameter ItemNo
//halaman properti "Audio".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,0', SW_SHOWNORMAL);
//halaman properti "Video".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,1', SW_SHOWNORMAL);
//halaman properti "MIDI".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,2', SW_SHOWNORMAL);
//halaman properti "CD Musik".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,3', SW_SHOWNORMAL);
//halaman properti "Perangkat".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,4', SW_SHOWNORMAL);
//Pengaturan opsi tambahan, dapat memiliki parameter ItemNo
//halaman properti "Keyboard".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,1',SW_SHOWNORMAL);
//halaman properti "Suara".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,2', SW_SHOWNORMAL);
//halaman properti "Tampilan".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,3', SW_SHOWNORMAL);
//halaman properti "Mouse".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,4', SW_SHOWNORMAL);
//halaman properti "Umum".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,5', SW_SHOWNORMAL);
//Pengaturan kata sandi, tidak ada parameter yang disediakan untuk membedakan antara dua halaman properti "Ubah Kata Sandi" dan "Ubah Konfigurasi Pengguna"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PassWord.cpl', SW_SHOWNORMAL);
//Pengaturan regional, dapat memiliki parameter ItemNo
//halaman properti "Pengaturan Regional".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,0', SW_SHOWNORMAL);
//halaman properti "Nomor".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,1', SW_SHOWNORMAL);
//halaman properti "Mata Uang".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,2', SW_SHOWNORMAL);
//halaman properti "Waktu".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,3', SW_SHOWNORMAL);
//halaman properti "Tanggal".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,4', SW_SHOWNORMAL);
//Pengaturan tanggal/waktu, dapat memiliki parameter ItemNo
//halaman properti "Tanggal dan waktu".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,0', SW_SHOWNORMAL);
//halaman properti "Zona Waktu".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,1', SW_SHOWNORMAL);
//Pengaturan mouse, tidak ada parameter yang disediakan untuk membedakan tiga halaman properti "Tombol", "Penunjuk" dan "Pindahkan"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Main.cpl', SW_SHOWNORMAL);
//Tambahkan/hapus pengaturan program, parameter ItemNo opsional
//halaman properti "Instalasi/Pencopotan Instalasi".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,1', SW_SHOWNORMAL);
//halaman properti "Penginstal Windows".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,2', SW_SHOWNORMAL);
//halaman properti "Boot Disk".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,3', SW_SHOWNORMAL);
//Pengaturan jaringan, tidak ada parameter yang disediakan untuk membedakan tiga halaman properti "Konfigurasi", "Identifikasi" dan "Kontrol Akses"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL NetCpl.cpl', SW_SHOWNORMAL);
//Pengaturan sistem,
//Halaman properti "Umum", dapat memiliki parameter ItemNo
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,0', SW_SHOWNORMAL);
//halaman properti "Pengelola Perangkat".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,1', SW_SHOWNORMAL);
//halaman properti "Profil Perangkat Keras".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,2', SW_SHOWNORMAL);
//halaman properti "Kinerja".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,3', SW_SHOWNORMAL);
//Pengaturan tampilan, dapat memiliki parameter ItemNo
//halaman properti "Latar Belakang".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,0', SW_SHOWNORMAL);
//Halaman properti "Screen saver".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,1', SW_SHOWNORMAL);
//halaman properti "Penampilan".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,2', SW_SHOWNORMAL);
//halaman properti "Pengaturan".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL desk.cpl,,3', SW_SHOWNORMAL);
//Pengaturan pengontrol game, dapat memiliki parameter ItemNo
//halaman properti "Umum".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,0', SW_SHOWNORMAL);
//Halaman properti "Lanjutan".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,1', SW_SHOWNORMAL);
//Pengaturan pemindai dan kamera digital, tidak ada parameter yang disediakan untuk membedakan dua halaman properti "Perangkat" dan "Pengaturan Perekaman"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL StiCpl.cpl', SW_SHOWNORMAL);
Program di atas telah di-debug dan diteruskan di bawah PWIN98+DELPHI3.0.