cyl675 发表于 2013-9-10 14:07:54

【已解决】AutoIt v3 窗口信息工具获取的信息与其他工具不同

本帖最后由 cyl675 于 2013-9-11 17:56 编辑


如上图对于桌面控件信息的获取AutoIt v3 窗口信息工具与彗星小助手4出现了不同的结果
我在用彗星获取的信息编写如下代码,返回0;返回指定项目/子项目的文本
$GetText=ControlListView('FolderView','','SysListView32','GetText',0)
MsgBox(4096,'返回指定项目/子项目的文本',$GetText)
而用AutoIt v3 窗口信息工具获取的信息编写如下代码,可以正确返回;返回指定项目/子项目的文本
$GetText=ControlListView('Program Manager','','SysListView321','GetText',0)
MsgBox(4096,'返回指定项目/子项目的文本',$GetText)
我的理解是任何控件都是窗体,彗星直接定位到了桌面的SysListView32这个控件,不知是否正确
如果一定要通过彗星获取的信息来操作又该如何写代码
还有ControlListView('Program Manager','','SysListView321','GetText',0)中只能使用类别名,用控件ID无效
ControlListView('Program Manager','','1','GetText',0)返回失败

seniors 发表于 2013-9-10 19:31:12

ControlListView('Program Manager','','1','GetText',0)返回失败
1不要引号

seniors 发表于 2013-9-10 20:07:16

本帖最后由 seniors 于 2013-9-10 20:29 编辑

找到使用慧星数据的方法
不过这个65670是会变化的,所以还是需要自己去读取
$GetText = ControlListView(Ptr(65670), '',0,'GetText',1)
MsgBox(4096,'返回指定项目/子项目的文本',$GetText)


#Include <GuiListView.au3>
$GetText = _GUICtrlListView_GetItemText1(Ptr(65670), 0)
MsgBox(4096,'返回指定项目/子项目的文本',$GetText)

huangwei 发表于 2013-9-10 22:24:04

谢谢分享,辛苦了

cyl675 发表于 2013-9-11 17:53:37

太神奇了完美解决,还送了我一个大惊喜,我一直以为GuiListView.au3中的函数只能用于
AU3自己创建的listview中呢,原来外部的也可以#Include <GuiListView.au3>
$GetText =_GUICtrlListView_GetItemText(Ptr(65666), 4)
MsgBox(4096,'返回指定项目/子项目的文本',$GetText)
$GetText =_GUICtrlListView_SetItemText(Ptr(65666), 4, "太神奇了")
MsgBox(4096,'返回指定项目/子项目的文本',$GetText)
页: [1]
查看完整版本: 【已解决】AutoIt v3 窗口信息工具获取的信息与其他工具不同