我用注入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 说:
?挺好的,谢谢
然后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 说:
?挺好的,谢谢
内容区刷新,重画,滚动都会导致反复输出相同文本。
而且同一段文本在输出时,也会出现多次。
是啊,的确有这个问题,所以一直没有找到解决的办法。我看有人用hook CreateTextServices的方法,不知道能不能解决这个问题?兄弟你有何高见,请不吝赐教。
var ppUnk:IUnknown):HResult; ITextHost编译不通过,应该uses哪个啊?