2004年9月号特集「Windows XPで旧式アプリケーションを動かす」

第1 部
Windows XPでなぜ動かないのか
Windows XPが出荷されて既に3年
Windows XPで動作しない可能性が
くつかあるが,代表的なのはWindows
がたった今でも,まだWindows 98を
あることだ。むしろ,Windows 98上
のバージョン番号の違いである。
利用しているユーザーは多い。本誌が
で使ってきたソフトがWindows XP
Windowsには製品ごとに,
「Win-
2004年2月末に実施した調査の結果で
で動作しなかったことが,XPへの移
dows XP」などの製品名のほかに,
は,全体の70%のユーザーが何らか
行を阻んでいるのかもしれない。
「GetVersionEx」
というAPIによって
ここでは,Windows 98で動作した
得られるバージョン番号が与えられて
だが,今後もWindows 98を使い続
ソフトがWindows XPで動かない理
いる。バージョン番号は製品ごとに異
けることは難しい。その最も大きな理
由を説明し,原因に応じた対処方法を
なり,例えば,Windows 95はバージ
由は,セキュリティ上好ましくないこ
紹介する。
ョン4.0,Windows 98はバージョン
の形でWindows 98を使っている。
4.1,Windows 2000はバージョン5.0,
とだ。米Microsoftは既にWindows
98に対する無償サポートを2003年6月
なぜ動作しないのか
Windows XPはバージョン5.1である。
末に打ち切っているし,2006年6月末
Windows 98とWindows XP。ど
小数点より上の値をメジャー・バージ
には完全に終了する
(図1)
。また,最
ちらも同じWin32 API(アプリケーシ
ョン,小数点以下をマイナー・バージ
新のパソコンやアプリケーション・ソ
ョン・プログラミング・インターフェー
ョンと呼ぶ。
フトの中には,Windows 98に対応し
ス)
を採用しているOSである。Win-
Windows用アプリケーション・ソフ
ていないものがある。
dows 98で動くソフトはWindows XP
トの中にはこのバージョンを調べ,特
今は,遅かれ早かれWindows 98か
でも動作することが多い。だが中に
定のバージョン以外だとわざと終了し
らWindows XPへの移行を考えなけ
は,Windows XPでは動かないソフ
てしまい,動かないものがある。この
ればならない時期にきている。PCの
トがあることも事実だ。それはなぜだ
ようなソフトは通常,終了時に「Win-
入れ替えなどに伴い,Windows 98マ
ろうか。
dowsのバージョンが違います」
という
シンはWindows XPに順次移行して
意味のメッセージを表示することが多
いくものと考えられるが,その際問題
バージョン番号の違いを判別するのが原因
になるのは,使用しているソフトが
Windows XPで動作しな原因はい
Windows 98発売
い
(図2)
。
アプリケーション・ソフトが行って
無償サポート終了
サポート終了
Windows 98SE発売
メインストリーム・フェーズ
1998年6月
1999年6月
延長フェーズ
延長
2002年6月
2003年6月
オンライン・
セルフ・ヘルプ・
サポート・フェーズ
2006年6月
2007年6月
※ メインストリーム・フェーズ:無償サポート,有償サポート,修正プログラム,セキュリティ更新プログラム,
オンライン・セルフ・ヘルプ・サポート情報など標準的なサポートを受けられる。
※ 延長フェーズ:有償サポー
ト,無償提供のセキュリティ更新プログラム,オンライン・セルフ・ヘルプ・サポー
ト情報を利用可能。有償で製品サポート,修正プログラム・サポートが受けられる。
※ オンライン・セルフ・ヘルプ・サポート
・フェーズ:延長フェーズ終了後は無償提供のセキュリティ更新プロ
グラムのダウンロード・センターからのダウンロードと,オンライン・セルフ・ヘルプ・サポート情報の利用が可能。
48 日経Windowsプロ 2004年 9月(no.90)
図1●Windows 98のサポートをめぐる動き
特集 1
Windows XPで旧式アプリケーションを動かす
図2●Windows XPでは動作しないWindows 98
用ソフトを起動したときのメッセージの例
いるこの処理自体は問題ない。なぜな
値が異なる
ら,Windowsはバージョンアップに
伴って機能が拡張されているからだ。
アプリケーション・ソフトは,現在動
作しているWindowsが,対象のバー
ジョンであることを確認する必要があ
る。例えばWindows XPにしか実装
されていないビジュアル・テーマ
(Luna
と呼ぶ新しいグラフィカル・ユーザ
ー・インターフェース)
を利用したソフ
トは古いWindows上で起動されても,
図3●GetDiskFreeSpace APIで空き容量を調べるサンプル・プログラム
実際には空き容量が45.6Gバイト
(49,003,077,632バイト)
あるのに,このAPIを使うと1676Mバイトと出る。ケ
ースによっては数Mバイトとなることもある。
正しく動作しない。それを事前に防ぐ
ために,バージョンを調べ,対象Win-
バージョンが5であるWindows XPは
が2Gバイト以上あると誤った値を返
dowsでなかったら終了してしまうの
この条件に当てはまらないので,終了
すことがある
(図3)
。現在は,空き容
である。
してしまう。
量が2Gバイト以上のときでも正しい
値を返すGetDiskFreeSpaceExの利
ただ,一般に,新しいWindowsに
は古いWindows のほぼすべての機
容量の間違いやOSの構造の違いが原因
用が推奨されているが,Windows 98
能(API)が実装されている。そのた
2番目の原因として,インストーラ
が出た当時のソフトの中には,古い
め,Windows XP用のソフトがWin-
がハードディスクの空き容量を間違え
GetDiskFreeSpace APIを使ってい
dows 98で動作しないことはあって
ることが挙げられる。実際にはインス
るものがある。
も,Windows 98用ソフトの多くはそ
トール先に十分なハードディスクの空
3つ目の原因は,デスクトップやス
のままWindows XPで動作すること
き容量があるのに,インストーラは十
タート・メニューなどユーザー・プロフ
が多い。
分ではないと認識し,インストールに
ァイル情報の格納フォルダが変わった
それなのに「Windowsのバージョン
失敗する。結果として,そのアプリケ
ことである。デフォルトのユーザー・
が違います」
というメッセージを出して
ーション・ソフトをWindows XPで動
プロファイルの位置は,Windows 98
動作しないのは,そのソフトが作られ
かせない。
ではC:¥Windowsだったのに対して,
たときにWindows XPは存在しなか
Windows XPには,ハードディス
Windows XPで は C:¥Documents
ったため,そのソフトがWindows XP
クの空き容量を調べるAPIが2つある。
and Settings¥〈ユーザー名〉
に変わっ
のバージョンを知らなかったからだ。
GetDiskFreeSpaceとGetDiskFree-
た
(図4)
。それに加えてユーザーごと
メジャー・バージョンが「4以上であ
SpaceExである。GetDiskFreeSpace
にアクセス権限を設定できるWindows
る」ことを調べるのではなく,
「4であ
は,主にWindows 95までのWindows
XP では,一般ユーザーはC:¥Win-
る」
ことを調べてしまうと,メジャー・
で使われていた古いAPIで,空き容量
dowsフォルダに対してファイルを書
49
日経 Windowsプロ 2004 年 9月
(no.90)
Windows 98
Windows XP
図4●デスクトップやスタート・メニューの内容を格納するフォルダ
Windows 98では「C:¥WINDOWS」
に収められている
(左)
。Windows XPでは「C:¥Documents and Settings」の下にユーザー・アカウントごとのフォルダがあり,
そこに収められている
(右)
。この違いが原因で,ソフトが正しく動作しないことがある。
けない。そのため,Windows XPで
換モードは,Windows XPよりも古
ム,②Windowsの種類,③画面モー
は異常動作してしまうWindows 98用
いWindowsのふりをする機能である。
ド――を順に選ぶと互換モードを設定
ソフトがある。
そのアプリケーションを動かすときだ
できる
(図6)
。
そのほか,256色モードでしか動作
け,特定のOS環境をエミュレートす
また,プログラム互換性ウィザード
しないソフトは,標準で6万5536色以
る。例えば,Windows 98モードに設
を使わなくても,設定したいソフトの
上のモードになるWindows XPでは
定すると,そのアプリケーションにだ
実行ファイル
(拡張子が.exe)
またはそ
動作しない
(図5)
。レジストリの構造
け4.1というバージョン番号を返す。
のショートカット
(スタート・メニュー
やメモリー管理の仕組みも,Windows
デスクトップやスタート・メニューなど
に登録されているものでも可)のプロ
98とWindows XPでは異なり,これ
のフォルダを,C:¥Documents and
パティ・ウインドウでも可能だ
(図7)
。
が原因で動作しないことがある。
Settingsフォルダにリダイレクトした
り,Windows 98のレジストリやメモ
Windows XPの互換モードで動かす
リー管理をエミュレートしたりする機
Windowsの構造的な違いが原因だと
互換モードでも動かない
以上のことが原因ならば,Win-
能もある。互換モードを使うと,ハー
互換モードに関して注意しなければ
dows XPが標準で備えている
「互換モ
ドディスクの空き容量が2Gバイト以
ならないのは,ハードディスクのバッ
ード」を使えば動く可能性がある。互
上ある場合でも,GetDiskFreeSpace
クアップやデフラグなど,ハードウエ
APIは,最大値の2Gバイトを返す。
アに直接アクセスするソフトに対して
画面の色数も指定できる。
は使ってはならないことだ。これらの
Windows XPで互換モードを設定
するには「プログラム互換性ウィザー
図5●256色モードでしか動作しないソフト
Windows XP は標準で 6万 5536 色または約
1677万色モードになるため,動作しない。
50 日経Windowsプロ 2004年 9月(no.90)
ソフトは,ハードウエアに対して直接
アクセスするからだ。
ド」
(
[スタート]
−
[すべてのプログラ
元々MS-DOS/Windows 3.1との互
ム]
−
[アクセサリ]
−
[プログラム互換
換性を重視して作られたWindows 98
性ウィザード]
)
を使う。このウィザー
と,安定性や移植性を重視して作られ
ドを使えば,①設定したいプログラ
たWindows XPでは,OSそのものの
特集 1
Windows XPで旧式アプリケーションを動かす
図6●プログラム互換
性ウィザード
プログラムを指定し,動
作させたいWindows
モードを指定する。
図7●互換モードで動かしたい実行ファイルのプ
ロパティ・ウインドウでも設定可能
構造やソフトウエアの実行方法,ハー
ドウエアの操作方法などが根本的に違
う。ハードウエアに直接アクセスする
Windows 98用ソフトがWindows XP
動かすのにWindows 98が動作する実機が必要
● ハードウエアに直接アクセスすることが原因
仮想マシン・ソフトで動作可能
● OSの構造的な違いが原因
で動作しないのは,それが原因であ
る。互換モードも使ってはならない。
ただこの場合でも,Windows XP
への移行をあきらめる必要はない。ソ
Windows XPの互換モードで動作可能
● Windowsのバージョンの違いが原因
● 古いAPIを使用していることが原因
● ユーザー・プロファイルなどの格納フォルダが異なることが原因
リューションとして考えられるのは,
Windows XP上で「仮想マシン・ソフ
ト」を使ってWindows 98を動かす方
図8●Windows 98用ソフトがWindows XPで動作しない理由
法や,Windows 98が動いている別の
PCをWindows XPマシンから遠隔操
シンを利用している場合でも,Win-
Windows 98マシンを残しておき,
作する方法である
(図8)
。
dows 98用ソフトはWindows 98上で
Windows XPマシンから遠隔操作す
稼働することになる。これなら多くの
る方法を採るのがいいだろう。Win-
場合,動作するはずだ。
dows XP Professionalに実装されて
Windows XP上でさらにWindows
98を動かす仮想マシン・ソフトに関し
いるリモート・デスクトップと同じよ
ては第2部で詳しく説明するが,仮想
仮想マシン・ソフトを使っても動作
マシン・ソフトとはWindowsの1つの
しない場合がある。それは,例えば計
ウインドウ内に仮想的なPC AT互換
測機器の制御など,ハードウエアがか
リモート・デスクトップのサーバー
機環境を作り出すソフトである。仮想
かわる場合だ。こうなるとWindows
機能はWindows 98向けには用意され
PC AT互換機環境では,あたかも実
98マシンを使わざるを得ない。
ていないが,
「VNC(Virtual Network
うな使い方である。
ただ,通常の業務に使うソフトの大
Computing)
」
というフリーソフトを
仮想マシン・ソフトを使ってWindows
半がWindows XPで動作し,Win-
使えばWindows 98マシンを遠隔操作
XP上の1ウインドウ内でWindows 98
dows 98でしか動作しないソフトの使
可能である。これについて詳細は第3
を動かせば,たとえWindows XPマ
用頻度が低いのなら,1台だけ共用の
部で説明する。
機と同じようにWindowsが動作する。
51
日経 Windowsプロ 2004 年 9月
(no.90)