3

TL;DR - Spy++ ツールは実際にプロセス リストをどのように構築するのですか?

ステージ

MFC デスクトップ アプリケーション (Windows XP で実行) がハングしており、ユーザー入力に反応しなくなりました。ただし、alt-tab で切り替える再描画されます。( 、 などは受信WM_SETFOCUSWM_ACTIVATEます。マウスやキーボードのメッセージは受信しないようです。)

アプリがどこかでハングアップしているため、いくつかのプロセス ダンプを取得しましたが、これまでのところほとんど役に立ちませんでした。入る:

スパイ++

Spy++ を使用して、このアプリケーションが処理していると思われるウィンドウ メッセージに関する上記の情報を見つけました。これを行うには、 Windows ビュー を開き、ウィンドウ ビューアプリケーション Window を選択し、Messages プロパティで選択した : を選択Windows of same processMessages to ViewますSelect All

ただし、最初に Spy++のProcesses View を開いてこのプロセスのすべてのメッセージを表示しようとしたところ、このプロセス リストにアプリケーションが表示されませんでした。アプリが正常に動作している別のPCでクロスチェックすると、Spy++のプロセスリストにもプロセスが正常に表示されます。プロセス ビュー

プロセスが Spy++ の Process Viewに表示されていないが、アプリのメイン ウィンドウが Windows ビューに表示されているという事実から、不正な動作をしているアプリについて何かを推測できますか。メイン ウィンドウが表示されているプロセスが、Spy++ のプロセス ビューに表示されないのはなぜですか?

プロセスは、タスク マネージャーと Visual Studio 2005 の [プロセスのアタッチ] ウィンドウに表示されます。

アプリが現在ハングしているシステムは Windows XP SP2 システムであり、Visual Studio 2005 に付属の Spy++ ユーティリティを使用しました。

この動作は時折繰り返されますが、アプリが数日間実行された後にのみ発生します!

4

3 に答える 3

2

Vista以降を実行していますか?あなたのプロセスはおそらく昇格されていますが、Spy++は昇格されていません。Spy ++の新しいバージョンでは、昇格が必要です。したがって、Spy ++を明示的に昇格させてみて、それが役立つかどうかを確認してください。

于 2011-11-25T14:06:12.393 に答える
0

はい、もちろん、このことから推測できます。この文脈で私が言うことをあまり真剣に受け止めないでください。コードを見に行く必要があります。しかし、Spy が起動して EnumProcesses API を調べていると思います。(http://msdn.microsoft.com/en-us/library/ms682629.aspx)

プロセスがそこに表示されない場合は... うーん。

しかし、それが機能しているシステムと機能していないシステムの違いは何ですか?

于 2011-11-18T10:08:35.747 に答える