请详细说明
热心网友
幕上的文字大都是由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);}。