【Win7】 ゲームエクスプローラとかいう糞機能

Windows,レジストリ

そうだ、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をアクセス拒否化で起動
 ⇒ 互換モードだろうがなかろうが問題なく動く。通信もなし