TL;DR- Spy++ 工具如何真正构建其进程列表?
Stage
我们有一个 MFC 桌面应用程序(在 Windows XP 上运行),它挂起,不再对任何用户输入做出反应。它is然而,通过 alt-tab 切换到它时会重新绘制。 (它确实收到WM_SETFOCUS
, WM_ACTIVATE
等。它显然没有收到任何鼠标或键盘消息。)
由于该应用程序处于某种不确定状态,我们提取了一些进程转储,但到目前为止这些没有什么帮助。进入:
Spy++ http://msdn.microsoft.com/en-us/library/dd460760.aspx
We used Spy++ to find the information I gave above about the window messages this application seems to be processing. We did this by Opening the Windows View http://msdn.microsoft.com/en-us/library/dd460727.aspx and selecting our application Window and in the Messages properties selected Windows of same process
and Messages to View
: Select All
.
However we first tried to view all messages of this process by opening the Processes View http://msdn.microsoft.com/en-us/library/dd470411.aspx of Spy++ and our application is not shown in this process list. Cross checking on another PC where the app is running normally, the process is also normally shown in the processes list of Spy++.
是否可以从 Spy++ 的进程视图中未显示进程这一事实推断出有关行为不当的应用程序的任何信息,但应用程序的主窗口显示在 Windows 视图中。为什么具有可见主窗口的进程不会显示在 Spy++ 的进程视图中?
该进程在任务管理器和 Visual Studio 2005 的附加进程窗口中列出。因此,这些工具显然使用与 Spy++ 不同的方法来列出进程...?
目前挂该应用的系统是Windows XP SP2系统,我们使用的是Visual Studio 2005自带的Spy++ Utility。
该行为偶尔会再次出现,但仅限于应用程序运行几天后!