При запуске приложения иногда требуются особые требования к системной среде. Например, в приложении базы данных Delphi вам может потребоваться установить имя источника данных BDE (Borland Database Engine) или ODBC (DSN: имя источника данных), в сетевом приложении вам может потребоваться установить параметры конфигурации сети, модем; настройки свойств или дозвона пользователя. Учетная запись и пароль подключения задаются и сохраняются в системе в 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 — номер элемента. . В программе Delphi вы можете использовать функцию 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);
//32-битный менеджер источников данных ODBC, источник данных ODBC, настройки драйвера ODBC
//Не предоставляются параметры для различения шести страниц свойств «Пользовательский DSN», «Системный DSN», «Файловый DSN», «Драйвер ODBC», «Отслеживание» и «О программе».
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);
//Настройки управления питанием, параметры, позволяющие различать две страницы свойств: «План электропитания» и «Дополнительно», не указаны.
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);
//Страница свойств "CD Music"
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_RunDLLdesk.cpl,,0', SW_SHOWNORMAL);
//Страница свойств "Заставка"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLLdesk.cpl,,1', SW_SHOWNORMAL);
//Страница свойств «Внешний вид»
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLLdesk.cpl,,2', SW_SHOWNORMAL);
//Страница свойств "Настройки"
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLLdesk.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.