hook住ExtTextOut后捕捉到的文字重复怎么办?

fisher_older 2011-09-25 11:57:17
我用注入MSN进程的方法能够hook住ExtTextOut函数,并将文字保存。但是当MSN收到新消息时,或者刷新时,又会重新调用ExtTextOut函数,造成捕捉的信息重复,而且由于坐标不一样,所以没想到办法区分。请教各位大虾该怎么解决?

比如我的MSN取名叫A, 有个朋友B发来一句:“你好吗?”
然后A(我)回一句:“挺好的,谢谢”。结果捕捉到的字符串是:


23:58:07 x:60 y:58 B 说:
你好吗?
23:58:07 x:138 y:58 说:
你好吗?
23:58:07 x:60 y:58 B 说:
你好吗?
23:58:07 x:138 y:58 说:
你好吗?
23:58:09 x:60 y:58 B 说:
你好吗?
23:58:09 x:138 y:58 说:
你好吗?
23:58:09 x:60 y:58 B 说:
你好吗?
23:58:09 x:138 y:58 说:
你好吗?
23:58:10 x:60 y:58 B 说:
你好吗?
23:58:10 x:138 y:58 说:
你好吗?
23:58:10 x:60 y:58 B 说:
你好吗?
23:58:10 x:138 y:58 说:
你好吗?
23:58:10 x:182 y:153 B 说:
?你好吗?
23:58:10 x:182 y:153 B 说:
?你好吗?
23:58:10 x:182 y:153 B 说:
?你好吗?
23:58:19 x:182 y:153 B 说:
?你好吗?
A 说:
?挺好的,谢谢
23:58:19 x:200 y:170 你好吗?
A 说:
?挺好的,谢谢
23:58:19 x:182 y:187 A 说:
?挺好的,谢谢
23:58:25 x:182 y:153 B 说:
?你好吗?
A 说:
?挺好的,谢谢
23:58:25 x:200 y:170 你好吗?
A 说:
?挺好的,谢谢
23:58:25 x:182 y:187 A 说:
?挺好的,谢谢
...全文
249 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fisher_older 2011-09-28
  • 打赏
  • 举报
回复
function CreateTextServices(punkOuter:IUnknown;pITextHost:ITextHost;
var ppUnk:IUnknown):HResult;

ITextHost编译不通过,应该uses哪个啊?
fisher_older 2011-09-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 caesardm 的回复:]
你勾住ExtTextOut的思路不妥当
内容区刷新,重画,滚动都会导致反复输出相同文本。
而且同一段文本在输出时,也会出现多次。
[/Quote]

是啊,的确有这个问题,所以一直没有找到解决的办法。我看有人用hook CreateTextServices的方法,不知道能不能解决这个问题?兄弟你有何高见,请不吝赐教。
funxu 2011-09-27
  • 打赏
  • 举报
回复
剩下的不好办了,只能把截取的内容通过内存映射或者消息发到你的主程序里,然后由外部程序撰写处理逻辑来过滤了
funxu 2011-09-27
  • 打赏
  • 举报
回复
我想我知道你的意思了.......囧,那么换个思路ExtTextOut这个函数是存在句柄,字号,颜色等各种信息的,如果从句柄来区分,应该可以略掉一部分文字吧
CaesarDM 2011-09-27
  • 打赏
  • 举报
回复
你勾住ExtTextOut的思路不妥当
内容区刷新,重画,滚动都会导致反复输出相同文本。
而且同一段文本在输出时,也会出现多次。
fisher_older 2011-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 funxu 的回复:]
捕捉里加个判断呗,例如记录上一次捕捉的内容,相同则略过
[/Quote]
好像没这么简单。
Stevens... 2011-09-26
  • 打赏
  • 举报
回复
kankan
funxu 2011-09-26
  • 打赏
  • 举报
回复
捕捉里加个判断呗,例如记录上一次捕捉的内容,相同则略过
fisher_older 2011-09-25
  • 打赏
  • 举报
回复
我的目的是要捕捉住最后的一句话,而不受刷新等操作影响。谢谢了

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧