找回密码
 加入
搜索
查看: 5798|回复: 10

请问如何取得鼠标位置窗口中控件的文本

[复制链接]
发表于 2009-6-14 19:03:42 | 显示全部楼层 |阅读模式
本帖最后由 hyqhyq 于 2009-6-14 19:45 编辑

请问如何取得鼠标位置窗口中控件的文本,就是像窗口信息工具那样的
发表于 2009-6-14 19:40:39 | 显示全部楼层
#include <WinAPI.au3>

$iMousePos = MouseGetPos()

$tPoint = DllStructCreate($tagPoint)
DllStructSetData($tPoint, 1, $iMousePos[0])
DllStructSetData($tPoint, 2, $iMousePos[1])

$hWin = _WinAPI_WindowFromPoint($tPoint)

$iLength = _SendMessage($hWin, 0xE) + 1
$tBuffer = DllStructCreate("char[" & $iLength & "]")
$pBuffer = DllStructGetPtr($tBuffer)

_SendMessage($hWin, 0xD, $iLength , $pBuffer)
Msgbox(0, $hWin, DllStructGetData($tBuffer, 1))
$tBuffer = 0
发表于 2009-6-14 19:43:04 | 显示全部楼层
楼上的代码还可以。。。不过要反应迅速。。。
 楼主| 发表于 2009-6-14 19:44:48 | 显示全部楼层
thanks a lot,ありがとう
发表于 2009-6-14 19:58:12 | 显示全部楼层
小日本鬼子!

居然用日语说谢谢,假洋鬼子
发表于 2009-6-14 20:25:17 | 显示全部楼层
技术交流无国界嘛
楼主用阿富汗语都不稀奇
 楼主| 发表于 2009-6-14 20:41:49 | 显示全部楼层
对于5楼说的话,我不敢反驳你,不然又是一堆愤青对我的攻击,我学日语并不是自愿,是我被分配到的专业必须学的(虽然是软件工程),因为学校日语课开得太多,基本上一个学期有一半的时间都在学日语,偶尔说两句也是难免的,如果你还是认为我亲日,我无话可说,也懒得辩解
发表于 2009-6-14 21:05:52 | 显示全部楼层
Re 5#:
都是世界公民,小伙你用的着这样吗。爱国不代表可以对别的国家无礼,况且楼主只是为了感谢解题者而说了一句日本语。你难道不知道学习第二种语言就是拥有第二个灵魂吗?嗯哼,跑题了。

2楼的代码,0xE代表消息WM_GETTEXTLENGTH(获取文本长度),0xD表示消息WM_GETTEXT(获取文本)。先通过发送消息WM_GETTEXTLENGTH获取文本长度,再分配一块如此长度的内存区(不然,获取到的文本往哪放?),最后通过发送消息WM_GETTEXT,将文本复制到指定的内存区域中,然后输出。至于长度+1的原因,只需把+1去掉,重新测试代码,就能明白原因了。
发表于 2009-6-14 22:44:29 | 显示全部楼层
。。。。。。觉得国耻不可忘。。毕竟屠杀了那么多人,国际是国际!但禽兽不如的,总觉得。。。

人总为生活世事所逼迫,我理解。。。
发表于 2009-6-15 00:52:15 | 显示全部楼层
这里不谈论政治,只讨论技术问题..

政治家到其他论坛谈论.
发表于 2014-8-16 08:24:06 | 显示全部楼层
学习来了,学习中,,,
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-20 23:47 , Processed in 0.076042 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表