使用hook对其他程序特定位置取词遇到的问题。

yfwill 2008-09-08 01:14:54
我需要对一个软件窗体特定控件取词,这个软件是用powerbuilder写的,有些文本框GetText消息取不到,只好用hook了。我现在已经挂接了TextOut函数,当窗体被自己的对话框覆盖后能够触发TextOut的调用,但是如果我发送InvalidRect则没有触发TextOut。

我现在的问题是,
1)我如何让那个特定的区域重绘来触发TextOut。
2)还有什么其他需要挂接的函数,因为我要取的那个位置未必是使用TextOut。

求大侠们帮忙。
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yfwill 2008-09-09
  • 打赏
  • 举报
回复
钩TextOut,只有在被注入的程序打开对话框时候才触发。而hook ExtTextOut,外挂程序一启动就触发了ExtTextOut,在Hook的ExtTextOut执行不久就死掉了
Amuro1987218 2008-09-09
  • 打赏
  • 举报
回复
你可以HOOK exttextout 直接返回0,看看还有哪能输出文字
青稞 2008-09-09
  • 打赏
  • 举报
回复
让区域无效,会触发paint进行重绘的。。绘制字符的API有不少,一般使用TextOut和DrawText()
what2say3 2008-09-09
  • 打赏
  • 举报
回复
TextOut ->__TextOut;你应该hook它们对应的最底的API;一共是3另外2个自己查查
yfwill 2008-09-09
  • 打赏
  • 举报
回复
一共就这些函数吗?除了InvalidateRect还有别的方法触发吗?
Amuro1987218 2008-09-08
  • 打赏
  • 举报
回复
exttextout

抓这个
yfwill 2008-09-08
  • 打赏
  • 举报
回复
谁能帮忙全部列出啊?
zoulie 2008-09-08
  • 打赏
  • 举报
回复
TextOutA,TextOutW,DrawTextExA,DrawTextExW.......
Jinhao 2008-09-08
  • 打赏
  • 举报
回复
可能是DrawTextEx。绘制字符串的API有好几个。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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