サンプル・プログラムでのぞくWindows 2000の世界(第2回)
コントロールパネルが語るWindows 2000の「対応付け」
第1回講座では,デスクトップを題材に,Windows 2000のCOMコンポーネントの世界をのぞいてみました。2種類のサンプル・プログラムを紹介しましたが,その中では次の3種類のCOMコンポーネント(再利用部品)を使いました。
・シェル・コンポーネント
・ファイル作成コンポーネント
・Internet Explorer
今回もこれら3種類のコンポーネントを使用し,Windows 2000のコントロールパネルの世界をのぞいてみましょう。なお,Windows 2000のコントロールパネルの基礎知識は,「初心者のためのWindows 2000入門」の第1回を参照してください。
![]() |
図1を見ると,ファイルの作成日がすべて0で埋められています。前回,デスクトップ情報を表示させたときには,作成日がきちんと入っていました。この事実から,次のようなことが推測できます。
“デスクトップの項目は,基本的にプログラムへのショートカットだが,コントロールパネルの項目は単なるショートカットではない”
そこで,次の「Sample2_2.vbs」というサンプル・プログラムを実行してみましょう(図2[拡大表示])。この画面情報を見て注意していただきたいのは,次のメッセージです。
![]() |
このメッセージ中のCPLファイルとは,拡張子「CPL(Control Panelの略語)」を持つ,コントロールパネル項目を実行するためのファイルです。このファイルは「rundll32.exe」というプログラムに対応付けられています。サンプル・プログラム「easycontrolpanel.vbs」はこのファイルの「ファイルの対応付け」機能を応用しています。皆さんの中にもこのような方法で,目的のコントロールパネル機能を自動起動している方もいるでしょう。コントロールパネルをいちいち開くことなく,目的のコントロールパネル項目を直接実行することができ,慣れてくると大変便利です。
ところが,Sample2_2.vbsサンプルを実際に実行し,作成されるファイル(sample2_2.txt)を見てみると,一つの疑問が生じます。
![]() |
“ユーザーとパスワード」は実行されないのではないか。”
そこで,この疑問を解決するために「dowithverb.vbs」というサンプル・プログラムを作成してみました。このサンプル・プログラムを実行すると,図3[拡大表示]のような画面が表示されます。これは,コントロールパネルに登録されている「ユーザーとパスワード」が正常に自動実行されることを示しています。これで私の疑問は払拭されました。
次に私は,先に紹介した「ユーザーとパスワード」情報に含まれていた{7A9D77BD-5403-11D2-8785-2E0420524153}などの数値をレジストリで調べてみました。レジストリには図4[拡大表示]のような情報が含まれていました。
![]() |
これまでのWindowsのコントロールパネルは,「rundll32.exe」と拡張子「CPL」を持つファイルが対応付けされただけのものでした。ところが,Windows 2000では,「ユーザーとパスワード」のように拡張子「DLL」を持つファイルも登録されているのです。しかも,rundll32.exeプログラムに渡すパラメータをちょっと変更するだけで,従来のCPLファイルと同じように使用できます。
この事実から,マイクロソフトは,コントロールパネルの「ユーザーとパスワード」機能を,従来のrundll32.exeとCPLファイルとの対応付けではなく,レジストリ経由で起動するようにしています。なぜこのような仕組みになったのでしょう。
![]() |
今回のまとめ
本文で明らかになったように,Windows 2000のコントロールパネルは,従来のrundll32.exeと拡張子「CPL」を持つファイルとの「ファイルの対応付け」に加えて,システム・レジストリ経由で拡張子「DLL」を持つファイルも対応付けされています。
ここにはネットワーク上で必要とされるセキュリティへの配慮も見られます。また,レジストリ経由で対応付けしていれば,レジストリ情報を変更することにより,バージョンアップしたDLLを容易に組み込めることにもなります。私たちユーザーからすれば,自作あるいはサードパーティ製の同等機能を持つDLLを使えるようなことも可能になります。
コントロールパネルはWindows 95/98環境でもおなじみですが,今回初めてその背景を知った方も多いのではないででしょうか。将来Windows 2000を使ったシステムの管理者を目指す方は,このコントロールパネルの使い方に精通する必要があります。その際,いちいちコントロールパネルを開いて目的の機能をダブル・クリックしていたのでは,時間がかかり,作業が効率的とはいえません。今回の知識を応用すれば,目的のコントロールパネル機能のみを,必要なときに,自動的に呼び出すことができるようになるでしょう。今回は多数のサンプルも用意していますから,ソースコードを見て検討してみてください最初は取っ付きにくいかもしれませんが,いずれもWindows 2000の特徴を端的に語るコードばかりです。
次回は,Windows 2000の「サービス」と呼ばれる特殊なWindowsプログラムを紹介します。この種類のプログラムはWindows 95やWindows 98環境にはありません。いよいよWindows 2000固有の世界に入るのです。お楽しみに!