请问如何取得鼠标位置窗口中控件的文本
本帖最后由 hyqhyq 于 2009-6-14 19:45 编辑请问如何取得鼠标位置窗口中控件的文本,就是像窗口信息工具那样的 #include <WinAPI.au3>
$iMousePos = MouseGetPos()
$tPoint = DllStructCreate($tagPoint)
DllStructSetData($tPoint, 1, $iMousePos)
DllStructSetData($tPoint, 2, $iMousePos)
$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 楼上的代码还可以。。。不过要反应迅速。。。 thanks a lot,ありがとう 小日本鬼子!
居然用日语说谢谢,假洋鬼子 技术交流无国界嘛
楼主用阿富汗语都不稀奇 对于5楼说的话,我不敢反驳你,不然又是一堆愤青对我的攻击,我学日语并不是自愿,是我被分配到的专业必须学的(虽然是软件工程),因为学校日语课开得太多,基本上一个学期有一半的时间都在学日语,偶尔说两句也是难免的,如果你还是认为我亲日,我无话可说,也懒得辩解 Re 5#:
都是世界公民,小伙你用的着这样吗。爱国不代表可以对别的国家无礼,况且楼主只是为了感谢解题者而说了一句日本语。你难道不知道学习第二种语言就是拥有第二个灵魂吗?嗯哼,跑题了。
2楼的代码,0xE代表消息WM_GETTEXTLENGTH(获取文本长度),0xD表示消息WM_GETTEXT(获取文本)。先通过发送消息WM_GETTEXTLENGTH获取文本长度,再分配一块如此长度的内存区(不然,获取到的文本往哪放?),最后通过发送消息WM_GETTEXT,将文本复制到指定的内存区域中,然后输出。至于长度+1的原因,只需把+1去掉,重新测试代码,就能明白原因了。 。。。。。。觉得国耻不可忘。。毕竟屠杀了那么多人,国际是国际!但禽兽不如的,总觉得。。。
人总为生活世事所逼迫,我理解。。。 这里不谈论政治,只讨论技术问题..
政治家到其他论坛谈论. 学习来了,学习中,,,
页:
[1]