• 作成:
  • 更新:

Windowsで謎のエラーポップアップが出たときに、エラーを出している原因のプロセスを調べる方法

概要

windows 7 - Runtime Error: R6025 -- Unable to see location of program causing the error - Super User を読めば解決します。

背景

Windows 11でドライバを更新した後再起動すると、運悪くブルースクリーンエラーになってしまい、次から起動すると以下のようなエラーが出るようになってしまいました。

Cannot open file StrRes.xml

タイトルがUUID(GUID?)だから何もわからない。エラーメッセージを調べてもあんまり意味のある情報は出てきませんでしたし。まあ状況証拠からドライバ関係でミスってしまっているので、多分System32を修復して、ドライバを再度更新すれば治るのでしょう。

しかし、確たる証拠もなしに雑に試行錯誤したくないですし、今回だけではなく、 Windowsでたまに「なんかエラーポップアップが出るけど、どのプロセスがエラーを出しているか全くわからない」ということはあるので、ちゃんと原因を突き止める方法を身につけておきたいなと考えて調べました。

今Windowsに詳しくないのは仕方がないけれど、実質WSLを使うためのシェルとは言っても仕事でWindowsを使わざるを得ないのだから、こういうことを知っておくべきですね。

ちょっと正解にたどり着くキーワードを見つけるのに手間取ったので、主に日本語圏のLinux出身ユーザのために、ポインタを残しておきます。

GNU/LinuxのX11なら分かる

X11環境ならばxpropというツールを使えば済む話です。ターミナルでxpropを実行して、調べたいウィンドウやダイアログやポップアップをクリックすると、それが属しているウィンドウクラスとかの情報がターミナルにバーっと出てきます。

これのWindows版が無いものか。

プロセス エクスプローラーがそれを担っていた

というわけで、プロセス エクスプローラー - Sysinternals | Microsoft Learn というツールがxpropと似たようなことをしてくれることが分かりました。

Microsoft製なのでそんなに警戒しなくて良いですね。 Sysinternals Suite - Sysinternals | Microsoft Learn をまとめてMSストアからインストールしても良いですし、インストール無しでexeを実行しても良いですし、 URLを指定しても実行できるようです。

duに関しては知ってましたが、こんなツールがここにあることは知りませんでした。

プロセス エクスプローラーの画面

上のツールバーの照準マークみたいなものを調べたいウィンドウにドラッグすると、そのウィンドウの属するプロセスが分かります。

これでASRockのユーティリティが表示されたので、問題はやはりデバイスドライバのインストール作業にあることが判明しました。良かったですね。

補遺

この問題自体はデバイスドライバの再インストールなどでは解決できなかったため、 Auto Driver Installerを最イントールするとWindowsのアンインストール欄にAuto Driver Installerが現れることを利用して、 AsrAPPShop.exeを抹消しておくことで時間稼ぎをしました。

とりあえずASRockの問い合わせに出して返答待ちです。