社区
Windows SDK/API
帖子详情
delphi中如何在文字输出到屏幕前将其截获,并修改!?
1024office
2007-12-12 04:33:24
如题,我是比较希望能做到截获所有的文字输出的一个通用的办法。当然,这个delphi的source是我自己的。
大家可以把你们实现的方法说出来听听看,我之前有做了个直接修改controls.pas,结果这样似乎只可以截那些caption属性,其他的,如listbox中的那些就截不到。大家帮帮忙,想想办法,谢谢!
...全文
300
11
打赏
收藏
delphi中如何在文字输出到屏幕前将其截获,并修改!?
如题,我是比较希望能做到截获所有的文字输出的一个通用的办法。当然,这个delphi的source是我自己的。 大家可以把你们实现的方法说出来听听看,我之前有做了个直接修改controls.pas,结果这样似乎只可以截那些caption属性,其他的,如listbox中的那些就截不到。大家帮帮忙,想想办法,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
comanche
2007-12-19
打赏
举报
回复
ApplicationEvent OnMessage事件如下
.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
tagMSG = TMsg 如下定义
TMsg = packed record
hwnd: HWND;
message: UINT;
wParam: WPARAM;
lParam: LPARAM;
time: DWORD;
pt: TPoint;
end;
其中 message 取出跟 WM_SETTEXT, LB_ADDSTRING 判断
comanche
2007-12-19
打赏
举报
回复
像 ListBox 之类的他用的是不同的消息, 你要做一个区分
ListBox 是 LB_ADDSTRING, LPARAM 同样是一个 lpsz str
ComboBox 是 CB_ADDSTRING, LPARAM 同样
comanche
2007-12-19
打赏
举报
回复
这个没必要用 hook, 放一个ApplicationEvent就可以,判断 WM_SETTEXT, LPARAM 就是指向 lpsz 的一个指针
1024office
2007-12-18
打赏
举报
回复
结啦,感谢各位协助。
公司最近要换.net了,郁闷中,虽然我社么语言都OK,但还是感觉Delphi比较爽。
^_^
1024office
2007-12-17
打赏
举报
回复
问题已解,用的是EXE中的hook,不过效果真的不咋的,速度有点慢,词典太大了点,郁闷。今天晚上-明天早上结贴。有主意再来说上两句呀
Bear_hx
2007-12-17
打赏
举报
回复
在Hook中不要做太多操作,尤其是费时的,这样整个系统都会很慢的。
Bear_hx
2007-12-13
打赏
举报
回复
截获hook
1024office
2007-12-13
打赏
举报
回复
问一下1、2楼,用hook截这些API我也会的,但是我搞不清楚,这些textout等类似的方法究竟有多少个,一个我怕做的不全,再个就是觉得,我有source的情况下,可否有一些稍微文明点方式(不需要用hook,有些系统监测软件会档掉。)来实现这个方法?拜托各位多多出主意,问题解决后,定当厚分相送!
wxgnolux
2007-12-13
打赏
举报
回复
1.可以用getwindowtext API 取得部分控件的text.
2.彻底的方法是如楼上所说,截获 textout 等一些文字输出的API,类似金山词霸取词功能. 这要用到 hook , 远程代码注射,引入表修改等技术.
你可以按这些线索网上找找,应该有你要的内容。
1024office
2007-12-13
打赏
举报
回复
to fangkailove
你的这个办法我们现在就是在用,是用在多国语言的设计里,但是这样做有一个坏处就是,我必须事先知道各个窗体中所有的元件,而我们这个多国语言通常一用就会是在整个一个大的系统工程中,这里面会设计到30多个的模块程序,20多位程序员的工作,我不能确认他们在以后的设计里是否会用到一些第三方组件等等,所以现在才出现了枚举的弊端呀,有些不是我们底层现在就可以预见到的元件在这里面,所以我们在想改良方案,我原本是想直接更新了VCL的基类,但是后来发现有些元件如listbox等,这里是用items来储存的,这样也还是无异与枚举了,我需要修改太多的VCL的pas文件了,于是我想找出VCL中可以直接将文字画到屏幕的地方,在这里来动态翻译,可结果追进了windows API了,比较郁闷呀。。。。
大家再帮我想想办法呢。拜托啦^_^
wxgnolux
2007-12-13
打赏
举报
回复
我有个想法但不知行不行,因为你有source ,那么取text的代码应该和被取者是在同一进程里的,那通过枚举窗体(包括窗体内所有控件),根据不同的classname转换成对应delphi的类,在取它的属性值...
【亲测免费】
Delphi
截图
文字
识别工具:高效便捷的
文字
提取利器
本文介绍了
Delphi
截图
文字
识别工具,它基于Tesseract 4.1引擎和
Delphi
编程语言开发。该工具
前
端界面简洁,后端处理高效,具有高效便捷、准确率高、开源支持等特点,适用于文档处理、数据录入、信息提取等多种场景,能提高工作效率。
delphi
数字识别_OCR
文字
识别工具itext
iText是一款强大的OCR工具,支持Mac系统,能从图片和PDF
中
精准识别
文字
。它采用腾讯和Google双引擎,提供
屏幕
捕获功能,允许用户通过快捷键轻松提取文本。虽然在识别特殊字符和复杂排版时可能需要后期校对,但其内置的优化算法能自动识别段落、调整格式。此外,iText还具备预览原始图像以便校对的功能,是一款实用的
文字
处理工具。
Delphi
API HOOK 完全说明
本文详细介绍如何使用
Delphi
实现 APIHook 技术,包括
修改
API 函数、实现跨进程钩子等功能,最终实现对 MessageBox 函数的拦截。
delphi
实现自适应的方法
本文介绍两种方法使
Delphi
应用程序的表单能够适应不同的
屏幕
分辨率:一是通过调整表单及其控件来适应当
前
分辨率;二是将
屏幕
分辨率更改为设计时所用的分辨率。
delphi
开发app
本文介绍用
Delphi
XE7开发移动APP的方法。移动互联网兴起使桌面开发受影响,
Delphi
从业者曾迷茫。
Delphi
XE7带来希望,工具需
Delphi
XE7和Android模拟器或手机。详细说明了从安装启动到编译运行的开发步骤,如新建项目、设置界面、选择设备等。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章