Windows 2000 が偶にグレー

グレイ画面になったWindows2000   うちの Windows 2000 はたまに画面が灰色になります。こうなる時は決まってソフトを多く起動しているときです。しかしながら、メモリは 128MB 積んでいるし、スワップ領域は 300MB あるし、通常なら大丈夫なはずなんですけど。。。
 左の画面では卓駆のウインドウが下半分にありますが、領域がデスクトップの色で塗りつぶされていたり、境界線などが無くなったりしています。タスクバーもかなり途切れ途切れになっています。上のほうのウインドウは卓駆の境界線です。きっと描画するときに描画する位置を取得できなかったんだと思います。クイック起動はタスクバーの位置から移動して右端に1列になっているのですが、それも消滅しています。この後マウスポインタを動かしていくとアイコンなどが再描画されて、タスクバーやクイック起動バーも表示されるようになります。左のショートカットアイコンが小さいのはチューチューマウスで小さくしているからです。画面全体が灰色になったり、通信中に右下の通知エリアに表示されるものが数倍に拡大されて左上に描画されたりします。

何のせいだろう

 どうしてこんなになるのだろう。Windows のせいならばもうちょっと大きい問題になっているのだと思います。それで、使っているソフトのせいかななどと思っていました。あれのせいかなああ。これのせいかなあって。

現象をよく考察

 画面が灰色になるんですけど、右端にしてあるクイック起動が左に表示されます。右端でマウスのカーソルを動かすと、左端のクイック起動のアイコンが表示されます。つまり、実態は右端にあるけど左端に表示されているわけです。んーー。タスクバーも同じです。下端にあるのに、上端に表示されていて、下端をマウスでクイックしていくと上恥のタスクバーの表示が更新されます。通信中で、タスクバーのステータスエリアにアイコンになっているパソコンが2つ表示されているアイコンは右上に拡大されてい表示されます。
 つまり、位置がうまく取得できていなくて、おまけにサイズもうまく取得できていなくて、ソフトは右端に書こうとしているのだけれど、位置を取得しようとすると左端の位置を取得できてしまうと言うことでしょう。
 やっぱりメモリが足りなくて、そういう位置取得のソフトウエアがエラーで0を返すのでしょう。だから、表示させようとしているソフトのほうは、0の位置に書くわけです。0の位置って画面の左上です。なので、上端や左端に表示されるんですね。おまけに位置がわからないから拡大率なんかもわからなくなって、巨大に描画したりするんだと思います。

心当たりあり

 思い出してみると、心当たりがありました。レジストリの編集をして、メモリ関係のところをいじった記憶があります。

カーネルメモリをスワップしないで高速化

これです。説明を読むと、「システムがメモリを 128 から 192MB 以上搭載しているなら、カーネルメモリは全てメインメモリ上に置くようにする(スワップしない)ことで、高速化できます。」とあります。それでうちではあまり体感速度の違いがよく分からなかったのでそのままになっていました。
 レジストリの HLEY_LOCAL_MACHINE\System\CurrentConrtolSet\Cotrol\SessionManager\Memory Management で、DisablePagingExecutive キーの値を 1 にしていました。これを 0 にしてみました。そしたら、あっさりと解決した感じです。メモリが 128MB あってもやっては駄目なようです。


解決したと思ったら、駄目だった

 このエラーの起こる確率はかなり下がったと思うのですが、まだ駄目のようです。同様なエラーが起こりました。何のせいだろうか。卓駆のためかなと思って卓駆をはずしてもだめだった記憶があります。秀丸を起動したときや、InternetExprolerを複数起動したときによく発生します。

原因のアプリを特定しよう

グレイ画面のときのタスク一覧  これが、エラー時のタスク一覧です。次に載せる起動直後のタスクリストと比較してみます。
起動直後のタスクリスト  上のタスクリストと比較すると、メモリ使用量が増えているのがありました。
卓駆 9MB → 23MB
Exproler 9M → 16M

犯人は○○だった

 実はこの問題非常に長期間悩まされつづけていました。Windows2000の初期版からSP3になってもまだ発生していまして、実はあるソフトを一旦終了すると不具合が解消するというkとがわかりました。また、それをメモリリークという方も存在しました。そうするとそのソフトが原因ということになるわけで、さて、どこが原因なんだろと検証することになるわけです。
 WIndows2000のタスクマネージャのプロセス一覧ではすべて情報が表示されていないのですが、[表示]-[列の選択]でGDIオブジェクトを選んで表示させたりしていたら、なんと出てきました。ソフトをちょっと操作するとどんどんオブジェクトが増えるのです。それが目いっぱいになるとその症状が出ることがわかりました。ちょっと休眠中のソフトでなかなか解消されそうになかったのですが、何とかアップデートしていただいてこの問題は解決しました。

#原因はマイクロソフトじゃなかったのね。。。

| このページのTOPへ移動 |