عند تشغيل أحد التطبيقات، فإنه يتطلب أحيانًا متطلبات خاصة لبيئة النظام. على سبيل المثال، في تطبيق قاعدة بيانات دلفي، قد تحتاج إلى تعيين BDE (محرك قاعدة بيانات Borland) أو اسم مصدر بيانات ODBC (DSN: اسم مصدر البيانات) في تطبيق الشبكة، وقد تحتاج إلى ضبط إعدادات تكوين الشبكة، Modem إعدادات الخاصية أو الاتصال الهاتفي للمستخدم يتم تعيين حساب الاتصال وكلمة المرور وحفظهما في النظام في CTI (الاتصال الهاتفي بالكمبيوتر). التكامل) قد يحتاج التطبيق إلى ضبط خصائص الاتصال بالهاتف؛ وقد يحتاج برنامج اللعبة إلى ضبط الوسائط المتعددة أو وحدة التحكم في الألعاب وما إلى ذلك؛ في هذا الوقت، تحتاج إلى تغيير إعدادات بيئة نظام Windows للتكيف مع متطلبات التشغيل العادي للتطبيق. عندما لا يتمكن التطبيق من إعداد البيئة من تلقاء نفسه، فقد يُطلب من مستخدم البرنامج المشاركة والمساعدة في إكمال الإعداد.
يتم تنفيذ معظم إعدادات نظام Win9X/NT في لوحة التحكم. يمكننا أن نطلب من المستخدم فتح لوحة التحكم بنفسه والعثور على العناصر المقابلة لإعدادها. في هذا الوقت، يُطلب من المستخدم أن يكون على دراية بلوحة التحكم، ويمكننا أيضًا فتح لوحة التحكم تلقائيًا للمستخدم في البرنامج وحدد العناصر المقابلة في هذا الوقت، كل ما على المستخدم فعله هو ضبط الإعدادات. الطريقة الأخيرة هي بلا شك أكثر ودية ويمكن أن تحسن كفاءة عمل المستخدم.
تتوافق معظم إعدادات المشروع في لوحة التحكم مع ملف CPL الموجود في دليل النظام الخاص بنظام التشغيل Windows. على سبيل المثال، الملف المطابق لسمة "الإنترنت" هو InetCpl.cpl، والملف المطابق لسمة "الوسائط المتعددة" هو MmSys. كبل، الخ. من خلال استدعاء هذه الملفات، يمكن فتح نافذة إعداد الخاصية المقابلة، ويمكنك حتى الانتقال إلى صفحة الخاصية المقابلة مثل صفحة خاصية "الاتصال" الخاصة بخاصية "الإنترنت"، مما يقلل بشكل فعال من خطوات التشغيل لمستخدمي البرنامج.
تنسيق استدعاء ملف CPL هو "RunDLL32.exe Shell32.dll,Control_RunDLL CPLFile.cpl,,ItemNo" (راجع القيمة الافتراضية لـ HKEY_CLASSES_ROOTcplfileshellcpopencommand في التسجيل)، حيث CPLFile.cpl هو ملف CPL وItemNo هو رقم العنصر. . في برنامج دلفي، يمكنك استخدام وظيفة WinExec أو CreatePRocess لاستدعاء ملف CPL، وبالتالي استدعاء عناصر الإعداد الخاصة بلوحة التحكم. إذا كنت تريد استدعاء صفحة خاصية "الاتصال" الخاصة بخاصية "الإنترنت" لتعيين الحساب وكلمة المرور لاتصال الطلب الهاتفي، فيمكنك استخدام العبارة "WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl) ،،3'،،" SW_SHOWNORMAL)؛"؛ لحل تفسير إدخال السنة المكون من رقمين في مشكلة 2000، تحتاج إلى استدعاء صفحة خاصية "التاريخ" في "الإعدادات الإقليمية"، يمكنك استخدام العبارة: "WinExec('RunDLL32.exe Shell32) .dll,Control_RunDLL Intl.cpl, ,4',, SW_SHOWNORMAL);".
قائمة البيانات المقابلة لاستدعاءات الإعداد لكل عنصر في لوحة التحكم هي كما يلي:
// افتح لوحة التحكم
WinExec('RunDLL.exe Shell32.DLL,Control_RunDLL',SW_SHOWNORMAL);
// مدير مصدر بيانات ODBC 32 بت، ومصدر بيانات ODBC، وإعدادات برنامج تشغيل ODBC
// لم يتم توفير أي معلمات للتمييز بين صفحات الخصائص الستة لـ "User DSN" و"System DSN" و"File DSN" و"ODBC Driver" و"Tracking" و"About"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL ODBCCP32.CPL',SW_SHOWNORMAL);
// مسؤول BDE
// لم يتم توفير أي معلمات للتمييز بين صفحتي خصائص "قواعد البيانات" و"التكوين"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL BdeAdmin.CPL',SW_SHOWNORMAL);
// سمة الإنترنت، يمكن أن تحتوي على معلمة ItemNo
// صفحة الخصائص "عامة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,0', SW_SHOWNORMAL);
// صفحة الخصائص "الأمان".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,1', SW_SHOWNORMAL);
// صفحة الخصائص "المحتوى".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,2', SW_SHOWNORMAL);
//صفحة خاصية "الاتصال".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,3', SW_SHOWNORMAL);
// صفحة خصائص "البرنامج".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,4', SW_SHOWNORMAL);
//صفحة الخصائص "متقدمة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL InetCpl.cpl,,5', SW_SHOWNORMAL);
// خصائص الاتصال الهاتفي، لم يتم توفير أي معلمات للتمييز بين صفحتي خصائص "موقعي" و"برنامج تشغيل الصوت للهاتف"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Telephon.cpl', SW_SHOWNORMAL);
// إعدادات إدارة الطاقة، لا يتم توفير أي معلمات للتمييز بين صفحتي الخصائص "Power Plan" و"Advanced"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PowerCfg.cpl', SW_SHOWNORMAL);
// إعدادات المودم، لا يتم توفير أي معلمات للتمييز بين صفحات الخصائص "العامة" و"التشخيصية".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Modem.cpl', SW_SHOWNORMAL);
// إعدادات الوسائط المتعددة، يمكن أن تحتوي على معلمة ItemNo
//صفحة خاصية "الصوت".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,0', SW_SHOWNORMAL);
//صفحة خاصية "الفيديو".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,1', SW_SHOWNORMAL);
// صفحة الخصائص "MIDI".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,2', SW_SHOWNORMAL);
// صفحة خصائص "أقراص الموسيقى المضغوطة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,3', SW_SHOWNORMAL);
// صفحة خصائص "الجهاز".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,4', SW_SHOWNORMAL);
// إعدادات الخيار المساعد، يمكن أن تحتوي على معلمة ItemNo
// صفحة الخصائص "لوحة المفاتيح".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,1',SW_SHOWNORMAL);
//صفحة خاصية "الصوت".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,2', SW_SHOWNORMAL);
// صفحة الخصائص "العرض".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,3', SW_SHOWNORMAL);
// صفحة خصائص "الفأرة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,4', SW_SHOWNORMAL);
// صفحة الخصائص "عامة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL access.cpl,,5', SW_SHOWNORMAL);
// إعداد كلمة المرور، لا يتم توفير أي معلمات للتمييز بين صفحتي الخصائص "تغيير كلمة المرور" و"تعديل تكوين المستخدم"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL PassWord.cpl', SW_SHOWNORMAL);
// الإعدادات الإقليمية، يمكن أن تحتوي على معلمة ItemNo
//صفحة خصائص "الإعدادات الإقليمية".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,0', SW_SHOWNORMAL);
// صفحة الخصائص "الرقم".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,1', SW_SHOWNORMAL);
//صفحة خاصية "العملة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,2', SW_SHOWNORMAL);
// صفحة خاصية "الوقت".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,3', SW_SHOWNORMAL);
// صفحة الخصائص "التاريخ".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Intl.cpl,,4', SW_SHOWNORMAL);
// إعداد التاريخ/الوقت، يمكن أن يحتوي على معلمة ItemNo
//صفحة خاصية "التاريخ والوقت".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,0', SW_SHOWNORMAL);
//صفحة خاصية "المنطقة الزمنية".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL TimeDate.cpl,,1', SW_SHOWNORMAL);
// إعدادات الماوس، لا يتم توفير أي معلمات للتمييز بين صفحات الخصائص الثلاث "الزر" و"المؤشر" و"النقل"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Main.cpl', SW_SHOWNORMAL);
// إضافة/حذف إعدادات البرنامج، معلمة ItemNo الاختيارية
//صفحة الخصائص "التثبيت/إلغاء التثبيت".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,1', SW_SHOWNORMAL);
//صفحة خصائص "مثبت Windows".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,2', SW_SHOWNORMAL);
// صفحة خصائص "قرص التمهيد".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL AppWiz.cpl,,3', SW_SHOWNORMAL);
// إعدادات الشبكة، لا يتم توفير أي معلمات للتمييز بين صفحات الخصائص الثلاث "التكوين" و"التعريف" و"التحكم في الوصول"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL NetCpl.cpl', SW_SHOWNORMAL);
// إعدادات النظام،
// صفحة الخصائص "عامة"، يمكن أن تحتوي على معلمة ItemNo
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,0', SW_SHOWNORMAL);
// صفحة خصائص "إدارة الأجهزة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,1', SW_SHOWNORMAL);
//صفحة خصائص "ملف تعريف الأجهزة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,2', SW_SHOWNORMAL);
// صفحة خصائص "الأداء".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,3', SW_SHOWNORMAL);
// إعدادات العرض، يمكن أن تحتوي على معلمة ItemNo
// صفحة الخصائص "الخلفية".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Desk.cpl,,0', SW_SHOWNORMAL);
// صفحة الخصائص "شاشة التوقف".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Desk.cpl,,1', SW_SHOWNORMAL);
// صفحة خصائص "المظهر".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Desk.cpl,,2', SW_SHOWNORMAL);
// صفحة خصائص "الإعدادات".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Desk.cpl,,3', SW_SHOWNORMAL);
// إعدادات وحدة التحكم في اللعبة، يمكن أن تحتوي على معلمة ItemNo
// صفحة الخصائص "عامة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,0', SW_SHOWNORMAL);
//صفحة الخصائص "متقدمة".
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Joy.cpl,,1', SW_SHOWNORMAL);
// إعدادات الماسح الضوئي والكاميرا الرقمية، لم يتم توفير أي معلمات للتمييز بين صفحتي خصائص "الجهاز" و"إعدادات التسجيل"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL StiCpl.cpl', SW_SHOWNORMAL);
تم تصحيح أخطاء البرنامج أعلاه وتمريره ضمن PWIN98+DELPHI3.0.