作者:tracker
唉,刚才写了半天评论,提交的时候失败了。。。再来一遍!!! 1.这篇文章写的实在是太好啦~~~,概念描述的太清楚了,当时我刚用wpt的时候,无论如何也搞不清楚这几列是干嘛的呵呵,查了很久...
View Article作者:tracker
关于3:我可能又没表达清楚,vs2012的帮助文档进程HlpViewer.exe,直接启动这个exe鼠标就会卡顿一会,在我两台电脑上都会出现这个问题,我把这个etl传到网上啦,有兴趣可以看一下哈哈连接是(http://url.cn/SnpNBh)
View Article作者:prog
http://webcache.googleusercontent.com/search?q=cache:vlOdiaMnDGYJ:randomascii.wordpress.com/2012/05/11/the-lost-xperf-documentationcpu-scheduling/+wait+classification+with+ready+thread&cd=1&hl=...
View Article作者:暗影吉他手
一个疑问:“2.GetOtherProcessData使用PostMessage给记事本中的目标窗口所在线程发送特定的窗口消息,并开始等待相关数据返回。”这期间notepad的主窗口的消息循环应该是停止的吧?那么notepad又是如何接收到这个特定消息并处理的呢?我对钩子的工作原理不是很熟,难道钩子的callback不需要目标线程调用GetMessage或PeekMessage取出这个消息之后才被调用?
View Article作者:Asp J
你说的很对,如果消息循环停止了,那消息钩子也就无法处理消息了。不过,这一句话是分析了Spy++查看正常情况下的记事本的窗口信息的过程之后,得到的Spy++的工作流程,也就是说此时记事本的主线程是正常工作的。
View Article作者:暗影吉他手
感谢解答,是我理解错了,忘了第一个例子是超时返回的……不过为什么spy++要用钩子呢,不能直接用GetClassName吗?是不是要获取目标窗口的句柄就必须用钩子?
View Article作者:Asp J
我也不清楚为什么Spy++要用钩子来获取ClassName,其实ClassName是可以在进程外获取的,但是有些属性倒是确实是需要在进程内才能获取到,比如窗口过程的地址,所以我估计Spy++就用钩子一并实现了。
View Article