如何hook textout? 本帖最后由 fisher_older 于 2011-07-11 21:06:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你要用全局hook吧?监控输入的文字可以用exttextoutW,也可以SendMessage WM_GETTEXT 需要hook到在该控件中输入文字时调用的TextOutA,TextOutW,ExtTextOutA,ExtTextOutW,并把文字内容搞出来。 为什么要用TextOutA,TextOutW,ExtTextOutA,ExtTextOutW你hook WM_CHAR更好 是这样的,有个控件名称是Internet Explorer_Server,要获取里面的文字内容,WM_GETTEXT捕获不到,只能通过hook textout的方法了。不知道该怎么办。 http://download.csdn.net/source/3351392你可以看一下这个 完了,看不懂,这是hook什么api函数的? 如果必须hook textout该怎么做?谢谢! 那个可以hook任意api,你改一下就行 hook API应该是没有问题的。假设在hookdll文件中如下代码:Hook := TNtHookClass.Create('gdi32.dll', 'ExtTextOutW', @NewExtTextOutW);其中:function NewExtTextOutW(DC: HDC; X, Y: Integer; Options: Longint; Rect: PRect; Str: PWideChar; Count: Longint; Dx: PInteger): BOOL; stdcall;begin Hook.UnHook; Result:= TrueExtTextOutW(DC, X, Y, Options, Rect, Str, Count, Dx); Hook.Hook;end;这里的str就是我需要的字符串。请问如何在主程序中获取str?如果传递给一个全局变量是否可行? 请教怎么用ClientDataSet做本地库的作用? 对richedit控件的selAttribute属性的疑问 读取文本文件里内容的问题 然后显示时间查询 这个问题如何解决? 有关mediaplayer的控键 救救一个郁闷中的初学者 栈的实现 高手请进...... 波斯日历转换公历 同一模块下做个与做好的单元一样的单元怎么做比较快 怎样将一长串十进制数字文本转成dword值? 反之dword如何转成数字文本?
你hook WM_CHAR更好
你可以看一下这个
假设在hookdll文件中如下代码:
Hook := TNtHookClass.Create('gdi32.dll', 'ExtTextOutW', @NewExtTextOutW);
其中:
function NewExtTextOutW(DC: HDC; X, Y: Integer; Options: Longint;
Rect: PRect; Str: PWideChar; Count: Longint; Dx: PInteger): BOOL; stdcall;
begin
Hook.UnHook;
Result:= TrueExtTextOutW(DC, X, Y, Options, Rect, Str, Count, Dx);
Hook.Hook;
end;这里的str就是我需要的字符串。请问如何在主程序中获取str?如果传递给一个全局变量是否可行?