屏幕取词,当屏幕上的词完全被档住时是否可通过API取到此词?(200分)

  • 主题发起人 主题发起人 gzbxmcx
  • 开始时间 开始时间
G

gzbxmcx

Unregistered / Unconfirmed
GUEST, unregistred user!
应用程序自身如果被档住后会窗口输出时依然能正确输出文字, 为何屏幕取词截取的输出文字的API确做不到?
 
因为屏幕取词Hook的是outtextxy,outtextxy只有词所在的窗口paint时才回调用,所以...
 
[^] [red]to楼上[/red] 不知道发个[blue]刷新[/blue]消息会不会[h4]截取[/h4]
呵呵 [:O]


dfwlogo.gif
 
不会,因为Hook得到的单前HWnd是前面的窗口,而不是被当住的HWnd!
 
是呀 不可能的 window系统的刷新机制决定的 ,他不会刷新后面窗体,前面的一般的抓词软件会很快的遮挡以下你要抓的内容 然后马上隐藏自己,引诱系统调用outtext 等api函数 从而获取 到内容 后台的,没发实现的
 
那你们可知道应用程序自身发出的重绘是可行的, 而且不管你档住不档住一样会进行重绘, 应用程序调用的那个API实现这个原理的。。
 
取词原理:
得到单前鼠标所在位置的HWnd
发送wm_paint
如果调用了outtextxy,且HWnd是单前的,那么得到Word
所以挡住的不能取,除非你把HWnd强行在DLL中设置为挡住的HWnd就可以了,问题是
取词的dll要自己遍,另外HWnd需要通过内存隐射方式传递才行的!呵呵!
 
晕了。。。调用这具DLL是编译器做的工作,如果我要动的话还要改编译器的代码
 
就是你发刷新消息也不会刷新的 windows刷新 回自己判断 不是你发了消息他就给你刷新
 
一般是不能的
 
我是说取词的dll是你自己编的!
 
取词的DLL容搞定,但HDC中的HWND是系统赋值上去的呀,就算你用内存映射也只能读取不能够写入呀。
 

Similar threads

I
回复
0
查看
788
import
I
I
回复
0
查看
548
import
I
I
回复
0
查看
610
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部