社区
Windows SDK/API
帖子详情
怎样获得窗体种label文字?
ronaldli
2003-08-12 07:03:54
比如net send 接收到的信息,怎样得到它的文本?
...全文
152
18
打赏
收藏
怎样获得窗体种label文字?
比如net send 接收到的信息,怎样得到它的文本?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ronaldli
2003-08-18
打赏
举报
回复
深了,连汇编都上来了
说实话,我基础比较差,有几个关键点还不是很明白
1、我怎样找到TextOut系统API的地址
2、我没改写过进程内存,希望能简单介绍一下,或介绍本参考书
ronaldli
2003-08-18
打赏
举报
回复
ok, thx a lot, settle accounts!
toplor
2003-08-18
打赏
举报
回复
给你介绍一本还算不错的书吧: <<Delphi下深入Windows核心编程>>
---------------------------------------------------------
风过西窗客渡舟船无觅处
年年一川新草遥看却似旧
大地精灵
2003-08-15
打赏
举报
回复
学习
kkk2000
2003-08-15
打赏
举报
回复
顶
ronaldli
2003-08-15
打赏
举报
回复
hilove(小枫):
你的代码很有用,但是Label不是窗体,是没有句柄的,所以你的代码不能实现
toplor(霜天晓竹):
怎么调用APIHook?
toplor
2003-08-15
打赏
举报
回复
调用SetWindowsHookEx和UnHookWindowsHookEx等函数,使自已的Dll注入到需要取得Label的文字的所在的进程, 找到TextOut等系统API的地址,修改它的前五个字节,使其跳转到自已定义的截获函数,这样做之后每一条TextOut系统调用都会转到你的自定义函数之中来,这样就可以获得所有的字符输出.
关键API:
WriteProcessMemory
OpenProcess
VirtualQuery
VirtualProtect
还有Jmp指令0xE9等
---------------------------------------------------------
风过西窗客渡舟船无觅处
年年一川新草遥看却似旧
IORILI
2003-08-13
打赏
举报
回复
參與
hilove
2003-08-13
打赏
举报
回复
给你一段C的代码,希望对你有启发:
#define ZOU_PROCESS_ERROR(condition)
if(!(condition))
goto Exit0; //错误处理宏定义
int CGetWindowInfo::GetRealWindow(HWND *phWnd, POINT ptPoint)
{
int nResult = false;
int nRetCode = false;
HWND hWndTop = NULL;
HWND hWndChild = NULL;
POINT ptCooChild = {0};
LONG lWindowStyle = 0;
//先得到ptPoint指向的(子)窗口
hWndTop = ::WindowFromPoint(ptPoint);
ZOU_PROCESS_ERROR(hWndTop);
ptCooChild = ptPoint;
lWindowStyle = GetWindowLong(hWndTop, GWL_STYLE);
//通过这个判断找到最上层的父窗口(也就是上面图片中“QQ设置”的主窗口)
if( !GetParent(hWndTop) ||
GetDesktopWindow() == GetParent(hWndTop) ||
!(lWindowStyle & WS_CHILDWINDOW))
{
*phWnd = hWndTop;
}
else
{
*phWnd = GetParent(hWndTop);
}
// 转换相对坐标
::ScreenToClient(*phWnd, &ptCooChild);
//从父窗口一层一层往下查找子窗口,直到找到最底层的子窗口
while (TRUE){
hWndChild = RealChildWindowFromPoint(*phWnd, ptCooChild);
if (hWndChild && (hWndChild != *phWnd))
*phWnd = hWndChild;
else
break;
}
nResult = true;
Exit0:
return nResult;
}
补充:
1、这是一个类SPY++的写法。LABEL也是窗体的一种,即程序中认为的子窗体。
2、最好用枚举系统任务的方法,别用FINDWINDOW。
另我在申请版主,希望多多支持。到下面这个网址支持我:
http://expert.csdn.net/Expert/topic/1893/1893700.xml?temp=.8558466
toplor
2003-08-13
打赏
举报
回复
从根本上说,它是系统调用TextOutA(W)或ExtTextOutA(W)输出的
用APIHook, 截获它的TextOut输出, 就可以了,很容易的
---------------------------------------------------------
风过西窗客渡舟船无觅处
年年一川新草遥看却似旧
雨后阳光2000
2003-08-13
打赏
举报
回复
^_^……哪就参与了
ronaldli
2003-08-13
打赏
举报
回复
获取net send接收到的文本,我已解决
关键在于net send信使服务对话框可以复制
所以我只要EnumWindows,找到“信使服务”窗体,然后SendMessage(hWnd, WM_COPY, 0, 0),最后自己解析剪贴板中的文本就可以了
而且在窗体中有句柄的控件也是可以得到文本的,但是,普通对话框中的Label我就不会取了。
等待一周,没人解决就颁发参与奖
meing
2003-08-12
打赏
举报
回复
用WIN32 API吧,有函数可查得窗口的handle.再用handle 做吧.好象与查*内容一样!
pressman
2003-08-12
打赏
举报
回复
这应该没办法了
别人程序里LABEL里的文字,
好象很难哦!
帮你顶,
让高手来答
FrameSniper
2003-08-12
打赏
举报
回复
我也学习,都不知道楼主说什么,真是惭愧,呵呵.........观望...........
pankun
2003-08-12
打赏
举报
回复
Net Send后接收到的信息应是个用MessageBox显示出来的对话框吧。
sixgj
2003-08-12
打赏
举报
回复
种label是什么东西?
huojiehai
2003-08-12
打赏
举报
回复
学习...
高校技术转移办公室人员如何利用知识图谱评估自身科研成果的转化潜力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
如何利用知识图谱为企业提供高质量的产学研合作建议?.docx
如何利用知识图谱为企业提供高质量的产学研合作建议?
Ternary-Quantization-Packing-Integrity-Auditor-v1.0-原创源码与文档.zip
原创 JavaScript 工程工具资源,包含完整源码、README、MIT License、原创与授权声明、可复现合成示例、3 项自动化测试、离线 HTML/JSON/SVG 报告及 1080×720 真实运行效果图。适合开发者进行本地分析、工程预检和结果复核;运行时零第三方依赖,不包含第三方源码、账号数据或受限素材。
Espressif 物联网开发框架
Espressif物联网开发框架。专为Espressif系统级芯片(SoCs)设计的官方开发框架。
1118 01/01 unity
1118 01/01 unity
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章