天天看点

Visual Studio Spy++的使用

使用 Spy++

Spy++ (SPYXX.EXE) 是一个基于 Win32 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作:

显示系统对象(包括进程、线程和窗口)之间关系的图形树。

搜索指定的窗口、线程、进程或消息。

查看选定的窗口、线程、进程或消息的属性。

直接从视图中选择窗口、线程、进程或消息。

通过鼠标定位,使用查找程序工具选择窗口。

使用复杂的消息日志选择参数设置消息选项。

提示   使用 Spy++ 时,在许多实例中都可以单击鼠标右键显示常用命令的弹出式菜单。命令是否可用取决于指针的位置。例如,如果在指向窗口视图中的某项时单击并且选定的窗口可见,则弹出式“突出显示”菜单项将导致选定窗口的边框闪烁,从而可以轻松地在屏幕上找到该窗口。

启动 Spy++

从“工具”菜单中选择“Spy++”。

注意   只能运行一个 Spy++ 副本。试图运行 Spy++ 的其他副本会将当前运行的 Spy++ 置于顶层。

Spy++ 是一种只读程序。使用 Spy++ 不会更改程序操作,但可能降低程序的执行速度。

使用 Spy++

Spy++ 具有一个工具栏和若干个超级链接,有助于您更快地工作。它还提供“刷新”命令以更新活动视图,提供“窗口查找程序工具”以使监视更为容易,提供“字体”对话框以自定义视图窗口。另外,Spy++ 还保存和还原用户首选项。

有两种实用工具与 Spy++ 类似:PView(显示有关进程和线程的详细信息)以及 DDESPY.EXE(动态数据交换 (DDE) 消息的监视程序)。

Spy++”工具栏

该工具栏出现在菜单栏下面。它提供打开新视图、启动或停止消息流显示、更改消息流选项、清除消息流窗口和查找窗口的快捷命令。可以使用“视图”菜单上的“工具栏”命令显示或隐藏工具栏。

按钮 效果

 创建一个窗口以显示系统中的所有窗口和控件的树视图。请参见“窗口”视图。

 创建一个窗口以显示系统中所有进程的树视图。请参见“进程”视图。

 创建一个窗口以显示系统中所有线程的树视图。请参见“线程”视图。

 创建一个窗口以显示窗口消息。此按钮调用“消息选项”对话框,使您除选择其他选项以外,还选择将显示其消息的窗口。请参见“消息”视图。

 启动消息记录并显示消息流。仅当“消息”窗口处于活动状态(具有焦点)时,此按钮才可用。请参见启动和停止消息日志显示。

 停止消息记录和消息流的显示。仅当“消息”窗口处于活动状态(具有焦点)时,此按钮才可用。请参见启动和停止消息日志显示。

 显示“消息选项”对话框。使用此对话框选择窗口和消息类型以供查看。仅当“消息”窗口处于活动状态(具有焦点)时,此按钮才可用。请参见选择“消息选项”。

 清除活动“消息”窗口的内容。仅当“消息”窗口处于活动状态(具有焦点)时,此按钮才可用。

 打开“查找窗口”对话框,这将使您选择一个窗口以查看消息或查找属性。请参见窗口查找程序工具。

 搜索当前视图以查找匹配的窗口、进程、线程或消息。

 搜索当前视图以查找下一个匹配的窗口、进程、线程或消息。仅当有效搜索结果不止一个时,此按钮(及相关的菜单项)才可用。例如,在窗口树中使用窗口句柄作为搜索条件时,将产生唯一的结果,因为该窗口树中只有一个具有此句柄的窗口。在本实例中,“查找下一个”不可用。

 搜索当前视图以查找上一个匹配的窗口、进程、线程或消息。仅当有效搜索结果不止一个时,此按钮(及相关的菜单项)才可用。例如,在窗口树中使用窗口句柄作为搜索条件时,将产生唯一的结果,因为该窗口树中只有一个具有此句柄的窗口。在本实例中,“查找上一个”不可用。

窗口查找程序工具

使用“窗口查找程序工具”可以查找选定窗口的属性。“查找程序工具”可以找到禁用的子窗口,并且如果禁用的子窗口相互重叠,还可以辨别要突出显示的窗口。

查找要监视的窗口

排列窗口以便使 Spy++ 和主题窗口可见。

从“监视”菜单中选择“查找窗口”打开“查找窗口”对话框。

将“查找程序工具”拖到所需的窗口。拖动该工具时,对话框中将显示窗口的详细信息。

- 或 -

如果知道所需窗口的句柄(例如,从调试器中),请在“句柄”框中键入该句柄。

在“显示”下选择“属性”或“消息”以选择要显示的信息的类型。

单击“确定”。

用“查找窗口”显示属性

提示   为减少屏幕混乱,请选择“查找窗口”对话框中的“隐藏 Spy”选项。此选项将移除主 Spy++ 窗口,并使“查找窗口”对话框显示在其他应用程序的上面。当单击“确定”或“取消”时,或者当清除“隐藏 Spy++”选项时,Spy++ 主窗口将还原。

展开和折叠 Spy++ 树

可以使用两种方法展开和折叠“窗口”、“进程”以及“线程”视图:在窗口中单击图标,或者使用“目录树”菜单。树中的 + 和 – 图标与它们在 Visual C++ 项目窗口中的作用相同。

“目录树”菜单包含下列四种命令:

菜单命令 说明

展开一层 将当前选定的项展开到下一个级别。

展开分支 完全展开当前选定的项。

全部展开 完全展开窗口中所有的项。

折叠 完全折叠当前选定的项。

提示   如果展开一个进程,将会看到该进程拥有的全部线程。如果展开一个线程,将会看到它所拥有的全部窗口的列表。

展开或折叠 Spy++ 树

突出显示“窗口”、“进程”或“线程”视图中的一个项。

从“目录树”菜单中选择一条展开或折叠命令。 

继续阅读