請(qǐng)?jiān)敿?xì)說(shuō)明

熱心網(wǎng)友

幕上的文字大都是由gdi32。dll的以下幾個(gè)函數(shù)顯示的:TextOutA、TextOutW、ExtTextOutA、ExtTextOutW。實(shí)現(xiàn)屏幕抓詞的關(guān)鍵就是截獲對(duì)這些函數(shù)的調(diào)用,得到程序發(fā)給它們的參數(shù)?! ∥业姆椒ㄓ幸韵氯齻€(gè)步驟:  一、得到鼠標(biāo)的當(dāng)前位置  通過(guò)SetWindowsHookEx實(shí)現(xiàn)?! 《?、向鼠標(biāo)下的窗口發(fā)重畫(huà)消息,讓它調(diào)用系統(tǒng)函數(shù)重畫(huà)  通過(guò)WindowFromPoint,ScreenToClient,InvalidateRect 實(shí)現(xiàn)?! ∪?、截獲對(duì)系統(tǒng)函數(shù)的調(diào)用,取得參數(shù)(以TextOutA為例)  1。仿照TextOutA作成自己的函數(shù)MyTextOutA,與TextOutA有相同參數(shù)和返回值,放在系統(tǒng)鉤子所在的DLL里?! ysFunc1=(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);}。