如何获取外部listview的每行内容
本帖最后由 jchang 于 2009-11-26 21:00 编辑现有一个存在的listview,已查出其类别名为syslistview321,想实现一下三个功能,并配有1、2、3三张图片:
1.把选中行导出到msgbox或者excel,见图1
2.选中的多行导出到msgbox或者excel,见图2
3.每行对应一个richedit1,同时把richedit1的内容也导出。见图3
现查阅帮助,我写了以下代码:
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
Opt('MustDeclareVars', 1)
$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work
_Main()
Func _Main()
Local $aItem, $sText, $hListView
$aItem = _GUICtrlListView_GetItemTextArray($syslistview321, 0)
For $i = 1 To $aItem
$sText &= StringFormat("Column[%2d] %s", $i, $aItem[$i]) & @LF
Next
MsgBox(4160, "Information", "Item 2 (All Columns) Text: " & @LF & @LF & $sText)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
请问该代码问题在哪里? 本帖最后由 xz00311 于 2009-11-13 12:32 编辑
$hListView 这个应该不需要定义了你去帮助文档看看 本帖最后由 xz00311 于 2009-11-13 12:32 编辑
Local $aItem, $sText, $syslistview321 多谢回复,按你的说明修改脚本后运行出错,如下图:
我的脚本如下:
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
Opt('MustDeclareVars', 1)
$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work
_Main()
Func _Main()
Local $aItem, $sText,$syslistview321
$aItem = _GUICtrlListView_GetItemTextArray($syslistview321, 1)
For $i = 1 To $aItem
$sText &= StringFormat("Column[%2d] %s", $i, $aItem[$i]) & @LF
Next
MsgBox(4160, "Information", "Item 2 (All Columns) Text: " & @LF & @LF & $sText)
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
请问问题出在哪? 呼唤高手解答 急盼高手来解决我的问题 _GUICtrlListView_GetItemTextArray()是获取程序内部ListView的全部项目,你这个截图应该是程序外部ListView吧!
也就是说它是用来获取自身全部项目的,而你那是第3方软件肯定不行吧!
所以你不觉得 你这一句写得很不合理吗?$aItem = _GUICtrlListView_GetItemTextArray($syslistview321, 1) 本帖最后由 131738 于 2009-11-22 22:51 编辑
你似乎是套用示例脚本吧?!
不过你没注意到原示例脚本捕捉的是脚本本身创建的 listview ,而你要捕捉的是外部 listview
你也没说明你的脚本运行的结果??4楼的截图可能是 $aItem 捕捉失败!!!
我这贴与楼上的撞车了!!!晚了一步!!: :face (33): 用 _ArrayDisplay($aItem, "") 语句试试能显示什么? MsgBox(0,0,$aItem) 看看有什么???? 标题模糊|违规,不利于论坛搜索,此主题已暂时关闭。请依照论坛发帖规则修改标题。并于修改合格之后,联系本版版主或管理员打开(务必附上被关闭的帖子链接)。若3日后仍未修改,将移入论坛回收站。若放弃对此主题的修改而重新开贴,将删除新帖并从重处罚。
附:论坛发帖规则 http://www.autoitx.com/forum.php?mod=viewthread&tid=10945 一个思路。。。。供参考
创建一个 GUI 窗口,设置若干按钮,其中一个RUN按钮启动外部 listview ,激活这个 listview 窗口,利用
Au3Info.exe 探测外部 listview 控件ID、索引、类别名。。。。。,使用GUICtrlListView 适用函数读取数
据。。。。。。。。 本帖最后由 水木子 于 2009-11-23 17:39 编辑
其实比较简单,大家别想太复杂啦!
本来昨天晚上我写了个例子,谁知道此贴被关了。
如果我没理解错 ControlListView 这个函数就可以解决LZ的问题。 其实比较简单,大家别想太复杂啦!
本来昨天晚上我写了个例子,谁知道此贴被关了。
如果我没理解错 Contr ...
水木子 发表于 2009-11-23 16:53 http://www.autoitx.com/images/common/back.gif
真高人也!!!!!!我确实搞复杂了!!!!!:face (33): 回复 13# 水木子
多谢,但是用controllistview后,像获取行数之类的命令可用,但是使用获取文本的命令后却获取不到任何内容。我的脚本如下:
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
MsgBox(0, "", ControlListView("Bentley ProjectWise Messenger 2004 Edition", "", "SysListView321", "GetText",9,0 ) )
运行后弹出的对话框是空的,请问是出了什么问题?
页:
[1]
2