アプリケーションの実行時には、システム環境に特別な要件が必要になる場合があります。たとえば、Delphi データベース アプリケーションでは、BDE (Borland Database Engine) または ODBC データ ソース名 (DSN: データ ソース名) を設定する必要がある場合があり、ネットワーク アプリケーションでは、ネットワーク構成設定、モデムを設定する必要がある場合があります。プロパティ設定またはユーザー ダイヤルアップ。接続アカウントとパスワードは CTI (コンピューター テレフォニー) に設定および保存されます。統合) アプリケーションでは電話ダイヤルのプロパティを設定する必要がある場合があります。ゲーム プログラムではマルチメディアまたはゲーム コントローラーなどを設定する必要がある場合があります。現時点では、アプリケーションの通常の動作の要件に合わせて Windows システムの環境設定を変更する必要があります。アプリケーションが独自に環境をセットアップできない場合、ソフトウェア ユーザーが参加してセットアップを完了するのを支援する必要がある場合があります。
Win9X/NT のシステム設定のほとんどはコントロール パネルで実行されます。ユーザーが自分でコントロール パネルを開いて、設定する対応する項目を見つけるように依頼することもできます。このとき、ユーザーはコントロール パネルに精通している必要があります。また、プログラムでユーザーのコントロール パネルを自動的に開くこともできます。この時点でユーザーが行う必要があるのは、設定を行うだけです。後者の方法は間違いなくよりフレンドリーであり、ユーザーの作業効率を向上させることができます。
コントロール パネルのプロジェクト設定のほとんどは、Windows のシステム ディレクトリにある CPL ファイルに対応しています。たとえば、「インターネット」属性に対応するファイルは InetCpl.cpl、「マルチメディア」属性に対応するファイルは MmSys です。 cplなど。これらのファイルを呼び出すことで、対応するプロパティ設定ウィンドウを開くことができ、さらに「インターネット」プロパティの「接続」プロパティページなど、対応するプロパティページにジャンプすることができ、ソフトウェア利用者の操作手順を効果的に削減できます。
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 年問題の 2 桁の西暦入力の解釈を解決するには、「地域設定」の「日付」プロパティ ページを呼び出す必要があります。次のステートメントを使用できます。「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 ドライバー」、「トラッキング」、「バージョン情報」の 6 つのプロパティ ページを区別するパラメーターは提供されていません。
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL ODBCCP32.CPL',SW_SHOWNORMAL);
//BDE 管理者
//「データベース」と「構成」の 2 つのプロパティ ページを区別するパラメータは提供されていません
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);
//電話ダイヤルのプロパティ。「現在地」と「電話音声ドライバー」の 2 つのプロパティ ページを区別するパラメーターは提供されていません。
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL Telephon.cpl', SW_SHOWNORMAL);
//電源管理設定。「電源プラン」と「詳細」の 2 つのプロパティ ページを区別するパラメーターは提供されていません。
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 ミュージック」プロパティ ページ
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);
//パスワード設定。「パスワードの変更」と「ユーザー構成の変更」の 2 つのプロパティ ページを区別するパラメータは提供されません。
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);
//マウス設定。「ボタン」、「ポインター」、「移動」の 3 つのプロパティ ページを区別するパラメーターは提供されていません。
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);
//ネットワーク設定。「構成」、「識別」、「アクセス制御」の 3 つのプロパティ ページを区別するパラメーターは提供されません。
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);
//スキャナとデジタル カメラの設定。「デバイス」と「録画設定」の 2 つのプロパティ ページを区別するパラメータは提供されません。
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL StiCpl.cpl', SW_SHOWNORMAL);
上記のプログラムはデバッグされ、PWIN98+DELPHI3.0 で渡されました。