社区
Windows SDK/API
帖子详情
delphi中如何在文字输出到屏幕前将其截获,并修改!?
1024office
2007-12-12 04:33:24
如题,我是比较希望能做到截获所有的文字输出的一个通用的办法。当然,这个delphi的source是我自己的。
大家可以把你们实现的方法说出来听听看,我之前有做了个直接修改controls.pas,结果这样似乎只可以截那些caption属性,其他的,如listbox中的那些就截不到。大家帮帮忙,想想办法,谢谢!
...全文
305
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
截图
文字
识别工具:高效便捷的
文字
提取利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在数字化信息时代,
文字
识别技术已成为提高工作效率的重要工具。为了满足用户在多种场景下的
文字
识别需求,我们推出了“
Delphi
截图
文字
识别工具”。该工具基于Tesseract 4.1引擎,能够快速、准确地从截图
中
提取
文字
信息,为用户提供便捷的
文字
识别解决方案。 项目技术分...
delphi
数字识别_OCR
文字
识别工具itext
itext mac是一款从图片
中
识别
文字
的OCR(光学字符识别)工具。通过截图、拖拽图片,即可以从扫描版的PDF等任意图片
中
识字,并且可以很好的解决摘抄和批注需求。而且itext ma使用腾讯、Google 双引擎,识别效果惊人地准确。iText for Mac(简单易用的OCR
文字
识别工具)mac.orsoon.comiText支持多种方式选择图像,操作非常方便。iText内置
屏幕
捕获工具。只...
Delphi
API HOOK 完全说明
一、关于 API Hook1. 什么是 API Hook不知道大家是否还记得,在 DOS 系统
中
编程,经常会采取截取
中
断向量的技术:我们可以设置新的
中
断服务程序,当系统其他的程序调用这个
中
断时,就让它先调用我们自己设置的新的
中
断服务程序,然后再调用原来的
中
断服务程序,这样就能够获得非凡的控制权。许多优秀的软件和大多数 DOS 病毒程序都采用了这个方法。
delphi
实现自适应的方法
一、根据新的分辨率自动重画表单及控件 先在表单单元的Interface部分定义两个常量,表示设计时的
屏幕
的宽度和高度(以像素为 单位)。在表单的Create事件
中
先判断当
前
分辨率是否与设计分辨率相同,如果不同,调用表 单的SCALE过程重新能调整表单
中
控件的宽度和高度。 Const Orignwidth=1800; Orignheight=600; proced
delphi
开发app
好的工具用起来就会顺手,很多
Delphi
从业者用惯了
Delphi
工具,在面对移动APP称王的时代似乎有力使不出。现在不用再担心JAVA语言的一些特性,太纠结了。我们直接用
Delphi
XE7开发吧。虽然
Delphi
XE2开始就支持移动开发了,但这
中
间的五个版本实在令人头痛,问题不少。作为开发者希望能有一个稳定的开发工具,在加强
Delphi
XE 6功能的同时修正不少
Delphi
XE6的BUG。这下
Delphi
Fans,该论到你们上场了。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章