http://www.somedoc.com/danspy/写界面程序的时候,经常需要对窗口的属性进行查看甚至动态调整。查看可以使用 spy++,动态调整窗口风格或者位置大小就没有什么称手的工具了。而且 spy++ 太大,启动就会加载全局钩子。dandy spy 是在实际工作中逐步完善起来的一个小工具,在对窗口的分析查看上,相对 spy++ 作了以下的改进:1、可以使用热键选择要查看的窗口
2、对于所有的列表框、组合框,均可以对其中的内容进行复制,在其上右击即可出现功能菜单。
3、如果目标窗口是一个 WebBrowser 窗口(即 IE 浏览器控件),则在 Class 页内会出现 View Source 按钮,可以在记事本中打开该 WebBrowser 窗口内的当前网页的源代码。对于受保护的网页或者 Symantec 的杀毒软件那样采用 DHTML 作为用户界面的应用程序,查看其实现代码比较方便。
4、在 Windows 页面里,增加了 Spy++ 所没有的对窗口的 Property 进行查看的功能。
5、可以立即任意更改窗口的风格,位置、大小
6、可以向窗口发送消息
7、极小的绿色包,80 KB 左右。还有些别的。欢迎各位提意见。下载:http://www.somedoc.com/danspy/

解决方案 »

  1.   

    大概看了下,做的还是不错的,程序很小,一点建议:
    可以查看firefox里的文本就更好了.
      

  2.   

    接分。
    确实挺方便的,我通常在windows目录下建一个快捷方式,叫dan,每次用的时候直接在运行里输入dan就可以了,使用热键选择窗口,超级方便,不过默认的Ctrl+F 太容易和别人冲突了,我建议改成Shift+F
      

  3.   

    ghz(冰河)兄弟:好的,我会考虑。不过以 Shift+F 作热键会让人不能输入大写 F,呵呵,不知道能不能让人接受。其实热键主要是为菜单/工具提示之类的窗口准备的备用方法,尤其是对菜单窗口抓取时,热键里绝对不能带有 Alt 键,那样会使菜单窗口消失。
      

  4.   

    总体来说还是不错的,不过还是有点不够完美哈。不知道你有没有用过Spy32 for windowx 9x/NT spy & capture utility version2.70.
    它就只有一个exe文件,并且也不大。
    你这个跟它相比仅仅是多了一个messagedump,其它方面还有待提高呀,主要是它那个已停止升级了。
    期待新的版本出来。
      

  5.   

    Juchiyufei(nofate):没有用过。不介意的话可以给我发一份看看,如果确实如此,当初我就不用费劲巴拉写这个了,呵呵。
      

  6.   

    这个查看WPF做的界面已经不可以了.
      

  7.   

    psbeond(LibUIDK界面库客服):主要原因是 Vista 里安全性增强了,程序之间的信息获取受到了很大的限制。我抽空会去研究一下的。
      

  8.   


    建议:1.在Process页里把该进程的全部信息给加上,可以查看这个进程里的每个模块,线程、CPU、TCP/IP、安全、环境、内存、性能之类的给加上,(这个地方你可以参考一下systeminternals的Process explorer),即然可以查看模块,就应该能有卸载之类的功能。2.在windows页里应该有上一个窗口的查看,下一个窗口的查看,可以给窗口发送指定的消息,并能把数据也带过去或带回来(writeprocessmemory,readporcessmemory之类的),也可以随意改变它的窗口属性。最好能提供DLL的插入。3.最好能把该窗口(程序)是用那种语言给说出来,相当于是language.exe。总之要做到小而精,而全。加油呀,等待你的好消息到来。
      

  9.   

    Juchiyufei(nofate):还没有收到。不过,既然这个工具功能这么全面,我就不用很着急的帮你实现寄托于我的希望了。
      

  10.   

    我发到[email protected]里面的。:)
      

  11.   

    看了看,他确实有些功能不错,而且原来我肯定也见过,不过后来找不到了。这个工具可能是用 Delphi 或者 BCB 开发的,这是我从他的界面风格上感觉到的,再查看一下他所用的控件的类名,确实都是以 T 开头,进一步证实了我的猜测。但是依我的了解,如果使用 Delphi/BCB 开发,可执行文件不会有那么小,所以我特意用十六进制工具查看了一下,证实这个可执行文件是用 UPX 压缩的。我用 UPX 压缩了一下 DanSpy.exe,最终的大小是 75KB。下面说一下我开发这个工具的初衷。大概是在 2002 到 2003 年之间,当时我要写一套外挂式的界面库,在研究菜单时发现 Spy++ 不能监控菜单窗口的消息流,所以才自己写了这个简单的工具。而且,为了能在最原始的 Windows 95 上也工作正常作了特别的努力。界面库工作告一段落后,这个工具基本上已经不再发展了。后来有一部分同事开始使用,我也基本上只是在他们的催促下修改 BUG。现在把它拿出来,也不是要大力发展它。因为你所说的包含 Process Explorer 的功能在内程序,我也在一年前就开始写了。而且,出于种种原因,我没有使用 MFC 或者 WTL,而是使用了之前我自己写的一个小的程序框架库 TWL。这样一来,一个框架类库和一个中型的程序互相作用,而工作也很忙,所以一年来进展不是很快。这次发布的这个 DanSpy,开始仅仅是为了验证我的程序从 MFC 移植到 TWL 的工作量的,可以说,它只是一个副产品。也是我的几个好朋友怂恿我把它放到网上来的,呵呵,献丑了。所以说,大家提出的 BUG,我会改正并发布更新,而新增新的功能的建议,我可能会延迟至新的版本里。另外,Process Explorer 里的很多功能需要有驱动程序的配合才能实现,可我不想写驱动……谢谢大家的关心。
      

  12.   

    WPF不是因为Vista的安全性你检查不到, 是WPF已经不在使用HWND了.除了父窗口还用一个HWND, 里面所以的控件都已经不是窗口了.但微软提供了一个工具可以读到这些控件的属性.
      

  13.   

    psbeond(LibUIDK界面库客服):哦,谢谢指出。看来从 Windows XP 开始的 DirectUIHWND 窗口类和 Office 产品里的 NetUIHWND 窗口类修成正果了。这种东西,原理上就和你自己在一个窗口里实现一套窗口系统是一样的,只不过微软的程序员太多,而且做这方面的活儿又是轻车熟路,做出来的比我们写的完善,而且还提供对外的接口,呵呵。