サンプル・プログラムでのぞくWindows 2000の世界(第1回)
Windows 2000は小さな部品の集まりで構成されている
本講座の目的
Windows 2000は一般にはビジネス用途向けの最新OSであるといわれます。このため,多くのWindows 95/98ユーザーは,“Windows 2000は敷居の高い巨大なOS”という印象を持っていることでしょう。私はそのような印象を持っているWindowsユーザーが多いことを悲観的に思っていません。むしろ,自然なことである,と考えています。
日々多数のプログラムが世界中で開発されています。プログラム開発者は自分のプログラムの中に,時代のニーズを積極的に反映しようと努力します。これは,私たちのニーズが複雑になれば,必然的に市場に出荷されるプログラムの構造自体も複雑になることを意味します。ある意味では避けられないことでしょう。
しかし,どのような複雑な現象でも,いくつかの要素で構成されているのも事実です。これは,そのままWindows 2000の世界を理解する際にも当てはまるのです。そこで本講座では,Windows 2000という巨大なOSを細分化し,Windows 2000を構成する各要素をサンプル・プログラムを用いて“実感”してみたいと思います。
サンプル・プログラムを実行してみよう
手始めに,Windows 95やWindows 98でもおなじみの「デスクトップ」の情報を取得してみましょう。そのために,今回は「Sample1_1.vbs」と「Sample1_2.vbs」という2種類のプログラムを用意しました。「VBS」という拡張子がついたファイルは,Windowsアプリケーションの開発環境として広く使われているVisual Basicの姉妹言語であるVBScriptで記述されています。Windows 2000はこの拡張子を持つプログラムの実行環境を標準でサポートしていますから,プログラム・ファイルをマウスでダブル・クリックするだけで実行できます。
図1は,Sample1_1.vbsプログラムをマウスでダブル・クリックすると,表示される画面です。画面から想像できるように,このサンプルは現在デスクトップ上に置かれているショートカットなどのデスクトップ構成情報を表示しています。この結果から分かるように,私のデスクトップには42個の情報が置かれていることになります。当然,この数値はサンプル・プログラムを実行するマシン環境に応じて異なります。さて,皆さんのデスクトップにはどれほどの情報が置かれているのでしょうか。試してみてください。
ここで,みなさんに覚えておいていただきたいことがあります。このサンプル・プログラムは「Windows 2000シェルCOMコンポーネント」という機能を使っている,ということです。
Windows 2000シェルCOMコンポーネントとは?
Windows 2000シェルCOMコンポーネントは,Windows 2000を構成する最も重要なファイルの一つである「Shell32.dll」ファイルの中に含まれています。「COMコンポーネント」という言葉をはじめて目にした人もいるでしょう。ここでは単純に「Windowsを利用する上で便利な再利用部品である」と考えおいてください。
すでに説明しましたように,Windows 2000は複雑なOSです。マイクロソフトは,出荷するOSが複雑化すればそれだけ,Windowsユーザーに負担のかかることを十分承知しています。このため,特別な約束事を決めて,Windowsで利用可能な機能をコンポーネント(部品)として開発するように提唱しているのです。この取り決めを「Component Object Model」略してCOMと呼んでいます。Windows 2000シェルであるShell32.dllは,その取り決めに従って開発された部品なのです。この部品は,エクスプローラなどのWindowsシステム自体も内部で呼び出しています。このサンプル・プログラムでは,Shell32.dllが持つCOMコンポーネントの機能を使って,デスクトップ情報を取り出しているわけです。
Shell32.dllコンポーネントから取り出した情報は,拡張子「TXT」を持つテキスト・ファイルとして整理しています。この作業でも,COMコンポーネントを使用しているのは言うまでもありません。そして,Internet Explorer(IE)を使って,作成したテキスト・ファイルを画面に表示しています。IEはWindows上で動作するアプリケーションと思われるかもしれませんが,実はIE自体も再利用可能なコンポーネントなのです。まとめると,このサンプル・プログラムでは,次のようなCOMコンポーネントを使っています。
・シェル・コンポーネント
・ファイル作成コンポーネント
・Internet Explorer
このような,Windows 2000が提供するコンポーネントをユーザーが再利用できないとしたら,このサンプルと同程度の機能を持つプログラムを作成するのはそれほどたやすいことではないでしょう。ここから,次のような結論を導き出せるはずです。
“Windows 2000は確かに多数の複雑な機能を持つOSに違いないが,その機能を利用するのはこれまで以上に簡単になっている”
Sample1_2.vbsは,基本的にSample1_1.vbsを拡張しているにすぎません。2つの画面を見比べると分かるように,表示される情報量が絞り込まれています。しかし,個々の情報の詳細データが提供されています。ご自分の環境で実行し,確認してみてください。
表示情報量を絞り込むには,プログラミング的には「条件分岐」を使います。ある特定の条件を満たす情報のみを選択することになります。この画面には「2000年の12月に作成されたショートカット」のみを選択して,それをファイルに格納し,表示しているのです。皆さんが将来プログラミングを始める場合には,この「条件分岐」をかなり使用するはずです。
次回は,Windows 2000のコントロール・パネルの世界をのぞいてみましょう。お楽しみに!
*サンプルプログラムは,「管理者」としてネットワーク環境にログインし,Windows 2000 Profession環境で動作確認してあります。
*本講座のソースコードをご検討なされるときには次のような市販図書を参考にされるとよいと思います。
・「Visual BasicプログラマのためのCOM入門」(翔泳社発行)
・「インサイドCOM+基本編」(日経BPソフトプレス)