请详细说明

热心网友

幕上的文字大都是由gdi32。dll的以下几个函数显示的:TextOutA、TextOutW、ExtTextOutA、ExtTextOutW。实现屏幕抓词的关键就是截获对这些函数的调用,得到程序发给它们的参数。  我的方法有以下三个步骤:  一、得到鼠标的当前位置  通过SetWindowsHookEx实现。  二、向鼠标下的窗口发重画消息,让它调用系统函数重画  通过WindowFromPoint,ScreenToClient,InvalidateRect 实现。  三、截获对系统函数的调用,取得参数(以TextOutA为例)  1。仿照TextOutA作成自己的函数MyTextOutA,与TextOutA有相同参数和返回值,放在系统钩子所在的DLL里。  SysFunc1=(DWORD)GetProcAddress(GetModuleHandle("gdi32。dll"),"TextOutA");  BOOL WINAPI MyTextOutA(HDC hdc, int nXStart, int nYStart, LPCSTR lpszString,int cbString)  { //输出lpszString的处理return ((FARPROC)SysFunc1)(hdc,nXStart,nYStart,lpszString,cbString);}。