概述
本工具(Dandy Spy,又名 DanSpy)的主要用途在于对 Windows 的窗口进行分析。可以显示某个选定窗口的相关信息。为了保证大家的使用习惯,界面安排特意与 Visual Studio 自带的 Spy++ 的窗口属性界面尽量一致。
注意 在某一时刻,本工具仅可以对一个目标窗口进行查看。
软件内附有完整更新历史。
程序界面
使用说明
- 目标窗口的选取
目标窗口的选取有两种方式,一种为鼠标选取,一种为键盘选取。鼠标选取目标窗口的方法与在 Spy++ 中的操作完全一样,只不过本工具的窗口拾取器位于主界面的左下角。为了方便大家对某些由于鼠标操作会消失的窗口(例如菜单窗口)进行查看,特意增加了用键盘选取目标窗口的功能。具体的操作是,将鼠标光标移动到要查看的窗口上,按下选取目标窗口的热键即可。
窗口被选取之后,该窗口的边框会闪烁,而且主界面的内容会立即更新以反映目标窗口的属性。
注意 本软件缺省使用的两个热键为 Ctrl-Shift-F 和 Ctrl-Shift-S。
- 开始/停止监控消息流
本软件实现了非常简单的消息流监控功能,可以通过 Spy 菜单下的 Start 或者 Stop 进行控制。也可以使用热键进行切换。
消息流的输出会显示在 Logger 窗口中。使用 Logger 菜单下的项可以显示或者隐藏该窗口。在 Logger 窗口上单击右键,可以出现关联菜单,以对监控到的消息流进行操作。
注意 Logger 窗口的输出为新消息在上,旧消息在下,即第一条消息总是最新的消息。
- 对目标窗口进行操作
在 Target 菜单下,为可以对目标窗口进行的便捷操作。可以对目标窗口显示、隐藏、最小化、最大化、恢复、启用、禁用、销毁,以及发送简单的消息。其中的 Advanced... 项即允许向目标窗口直接发送消息,但尚不支持输入消息数值。
另外,还可以在窗口树中定位到目标窗口在窗口系统中的层次。
- 选项
- 选择 Option/Messages 菜单,可以定制要监控的消息。
- 选择 Option/Misc 菜单,可以定制选取目标窗口以及开关监控消息流的热键。
- 选择 Option/Misc 菜单,可以选择对目标窗口进行边框闪烁时的不同方式。对于隐藏的以及某些特殊窗口,高亮闪动窗口位置时显示不到屏幕上,这是因为绘制操作使用了该窗口的本身设备上下文。出现这种情况,可以将设备上下文类型改为桌面的设备上下文(即把 DC Type 选为 Desktop),如此则可以在屏幕上查看这些窗口
所处的位置。如果把边框类型选择为 Region,则可以闪烁异形窗口的轮廓。
- 选择 Option/Misc 菜单,可以选择监控到的消息流的输出方式。
- 主界面
主界面分为 General、Styles、Class、Windows、Process 以及 Windows Tree 共六个页面。前五个页面与 Spy++ 中的窗口属性页面极其相似,但有少许的改进,马上会介绍到。第六个页面与 Spy++ 的窗口树功能相似。
对 Spy++ 对应功能所做的改进有:
- 对于所有的列表框、组合框,均可以对其中的内容进行复制,在其上右击即可出现功能菜单。
- 如果目标窗口是一个 WebBrowser 窗口(即 IE 浏览器控件),则在 Class 页内会出现 View Source 按钮,可以在记事本中打开该 WebBrowser 窗口内的当前网页的源代码。对于受保护的网页或者 Symantec 的杀毒软件那样采用 DHTML 作为用户界面的应用程序,查看其实现代码比较方便。
- 在 Windows 页面里,增加了 Spy++ 所没有的对窗口的 Property 进行查看的功能。
- 主界面 Refresh 按钮的左侧为将目标窗口的内容作为位图复制到剪贴板的功能按钮。
- 在进程信息页面中,显示出了窗口所属进程的可执行文件名、全路径,以及该进程的完整命令行。
- 窗口树界面中,可以选择仅显示可见窗口,或者显示全部窗口;也可以把窗口按照所属进程进行分组显示。
- 可以设置窗口树自动刷新;在自动刷新复选框上单击鼠标右键,可以在关联菜单中选择自动刷新的时间间隔,共分为 0.5 秒、1 秒、2 秒、5 秒和 10 秒 5 档。
另外,在活动页面为 Windows Tree 页时,Refresh 按钮会刷新窗口树;而在其他页面活动时该按钮的功能为刷新目标窗口的所有信息。
- 附加工具 1
在许多情况下,可能会对某些窗口的风格进行实时的调整,以查看窗口系统的工作情况。因此,本软件还附带了此功能。选择 Tools/Windows Styler 会出现此功能窗口。
该工具的缺省目标为主窗口内的目标窗口,但也可以使用选取器另外选择。可以根据需要选中或者去掉目标窗口的某个风格。点击“Modify”按钮可以将改动过的风格应用到目标窗口上。点击“Test”按钮则会以选定的风格创建一个新窗口出来(不支持子窗口)。
- 附加工具 2
除上述情况外,有时还会有一些获取目标窗口的内容的需求。例如,对于列表控件或者树状控件,往往会希望能把其中的文字转储出来。选择 Tools/Windows Dumper 即可使用此功能。
- 附加工具 3
提供了在不需创建进程的情况下,快速打开新的 Internet Explorer 窗口的功能。默认为此功能设置了热键 Ctrl-I,也可以通过 Option/Misc 菜单对此热键的设定进行修改。
- 附加工具 4
提供了快速截屏的功能。其使用方法与腾讯 QQ 或者 TM 基本一致。默认热键为 Ctrl-Shift-C,也可以通过 Option/Misc 菜单对此热键的设定进行修改。
- 附加工具 5
有的版本的 DanSpy 的 Tools 菜单下还会出现一个 Assist 菜单,可以选择 Load 进行加载,Unload 进行卸载。
加载之后,用户将会对系统内的窗口拥有更大的控制权:
- 鼠标右击任何顶级窗口的最小化按钮,会把该窗口最小化到系统托盘中。对于没有最小化按钮的顶级窗口,可以按下 Ctrl,在其上使用鼠标右键双击即可。
- 按住 Alt,则使用鼠标左键可以强行移动鼠标光标下的顶级窗口;如果同时还按下了Ctrl 键,则可以强行移动鼠标光标下的任何窗口(即可以是子窗口),不过对于 ID
为 -1 的子窗口无效。
- 按住 Alt,则使用鼠标右键可以强行改变鼠标光标下的可变大小的顶级窗口的大小;如果同时还按下了 Ctrl 键,则可以强行改变鼠标光标下的任何窗口(即可以是子窗口)的大小,不过对于 ID 为 -1 的子窗口无效。
注意 此工具并非本软件的所有版本均带有。