【Win7】 ゲームエクスプローラとかいう不要機能
そうだ、Quake2をやろう。ということでインストール。パッチを当ててWin98互換モードでquake2.exeをダボォクリック。無事起動。
本来ならこれで終わるはずだったのですが、互換モードにしないで起動すると、同時にrundll32.exeも立ち上がり、何故かMicrosoftに繋ごうとしました。通信先のIPアドレスは65.55.162.27。
試しにこのアドレスをブロックすると、rundll32.exeが延々MSに繋ごうとしてゲームが起動せず。ブロックを解くとゲームが起動。は?Quake2の起動にMSとの通信が必要とか意味わからん。
この挙動は一体なんじゃらほい、と調べてみるとゲームエクスプローラなるWindowsVISTAからある機能で、特定の古いゲームは何故かゲームエクスプローラと連動する場合があるようです。
ゲームエクスプローラを無効にする方法は無いものかと調べても見つからず、設定の問題かと思いゲームエクスプローラのオプションを見ても (各画像はクリックで拡大)
↑こんな感じで通信する要素はまったく無し。
ゲームエクスプローラを起動して確認したい人はショートカットを新規作成して
%SystemRoot%\explorer.exe /E,::{ED228FDF-9EA8-4870-83b1-96b02CFE0D52}
↑をコピペしてください。あとはショトカを実行すれば起動します。
不要な物は無効にしたい症候群が発症したので、なんとか意地でも無効にしようと、ゲームエクスプローラが使っているレジストリをアクセス拒否してみることに。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX
上記のGameUXの中身を全削除して↓のように全拒否。
このレジストリの変更で互換モードを適用せずにquake2.exeをダボォクリック、無事起動。えええ…。rundll32.exeが起動することもなく、通信も発生しませんでした。互換モードじゃないと、Quake2の起動をさせるのにMSさんの許可がいるってのか、なんなんだこの糞機能は。
とりあえずこれで古いゲームを起動したときに、意味不明にMSに繋ごうとしたり、MSとの通信がブロックされるとゲームが起動しない、というようなことは回避されましたが、根本的にゲームエクスプローラを無効化する方法って無いもんすかね。
大人しく互換モードでやるか、MSと通信すれば良いだけの話ではありますが。モヤッとして完。
以下、余談。「ゲームエクスプローラのせいで古いゲームがオフラインで起動出来なかったり、rundll32.exeがCPUを爆食いするよ!」という投稿が海外でありました。
MS公式フォーラム (海外)
Older games causes rundll32.exe to open and 100% CPU usage
↑の人はレジストリの削除で上手くいったようですが、管理人環境ではレジストリを削除しても新たに作成されました。互換モードで大体解決しそうなものですが、互換モードが上手く働かなかった場合は、レジストリのGameUXの全拒否化をお試しあれ。もちろん自己責任で。
Win7のサポートが終了する2020年くらいに、オフラインゲームマシンと化したWin7機をお使いの人に、この記事が役に立つ日がきっとくる。のだろうか。
ただ、互換モードだと動かなくて、互換モードでないときは動く、それでいてゲームエクスプローラと連動する、そんな古いゲームがこの世にどれだけあるのかは知りません…
ゲームエクスプローラと連動する古いゲームの挙動ぷちまとめ
・互換モードで起動
⇒ 何の問題もなく動く(Quake2は)
・互換モードを使わずに起動&MSと通信
⇒ ちょっとの時間後に起動
・互換モードを使わずに起動&MSとの通信をブロック
⇒ 起動せず。rundll32.exeが延々MSと通信しようとする
・レジストリでGameUXをアクセス拒否化で起動
⇒ 互換モードだろうがなかろうが問題なく動く。通信もなし