找回密码
 加入
搜索
查看: 7256|回复: 22

如何获取外部listview的每行内容

 火.. [复制链接]
发表于 2009-11-12 22:37:02 | 显示全部楼层 |阅读模式
本帖最后由 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[0]
        $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

请问该代码问题在哪里?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-11-13 12:23:43 | 显示全部楼层
本帖最后由 xz00311 于 2009-11-13 12:32 编辑

$hListView 这个应该不需要定义了你去帮助文档看看
发表于 2009-11-13 12:23:46 | 显示全部楼层
本帖最后由 xz00311 于 2009-11-13 12:32 编辑

Local $aItem, $sText, $syslistview321
 楼主| 发表于 2009-11-13 22:18:32 | 显示全部楼层
多谢回复,按你的说明修改脚本后运行出错,如下图:

我的脚本如下:
#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[0]
                $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


请问问题出在哪?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2009-11-16 17:42:40 | 显示全部楼层
呼唤高手解答
 楼主| 发表于 2009-11-22 21:12:06 | 显示全部楼层
急盼高手来解决我的问题
发表于 2009-11-22 21:24:36 | 显示全部楼层
_GUICtrlListView_GetItemTextArray()
是获取程序内部ListView的全部项目,你这个截图应该是程序外部ListView吧!
也就是说它是用来获取自身全部项目的,而你那是第3方软件肯定不行吧!

所以你不觉得 你这一句写得很不合理吗?
$aItem = _GUICtrlListView_GetItemTextArray($syslistview321, 1)
发表于 2009-11-22 21:33:15 | 显示全部楼层
本帖最后由 131738 于 2009-11-22 22:51 编辑

你似乎是套用示例脚本吧?!
不过你没注意到原示例脚本捕捉的是脚本本身创建的 listview ,而你要捕捉的是外部 listview
你也没说明你的脚本运行的结果??4楼的截图可能是 $aItem 捕捉失败!!!

我这贴与楼上的撞车了!!!晚了一步!!:        
发表于 2009-11-22 21:36:17 | 显示全部楼层
用 _ArrayDisplay($aItem, "") 语句试试能显示什么?
发表于 2009-11-22 21:38:28 | 显示全部楼层
MsgBox(0,0,$aItem[0])    看看有什么????
发表于 2009-11-22 22:03:12 | 显示全部楼层
标题模糊|违规,不利于论坛搜索,此主题已暂时关闭。请依照论坛发帖规则修改标题。并于修改合格之后,联系本版版主或管理员打开(务必附上被关闭的帖子链接)。若3日后仍未修改,将移入论坛回收站。若放弃对此主题的修改而重新开贴,将删除新帖并从重处罚。

附:论坛发帖规则 http://www.autoitx.com/forum.php?mod=viewthread&tid=10945
发表于 2009-11-23 16:39:07 | 显示全部楼层
一个思路。。。。供参考

创建一个 GUI 窗口,设置若干按钮,其中一个RUN按钮启动外部 listview ,激活这个 listview 窗口,利用

Au3Info.exe 探测外部 listview 控件ID、索引、类别名。。。。。,使用GUICtrlListView 适用函数读取数

据。。。。。。。。
发表于 2009-11-23 16:53:06 | 显示全部楼层
本帖最后由 水木子 于 2009-11-23 17:39 编辑

其实比较简单,大家别想太复杂啦!
本来昨天晚上我写了个例子,谁知道此贴被关了。
如果我没理解错 ControlListView 这个函数就可以解决LZ的问题。

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
131738 + 20 + 5

查看全部评分

发表于 2009-11-23 21:03:38 | 显示全部楼层
其实比较简单,大家别想太复杂啦!
本来昨天晚上我写了个例子,谁知道此贴被关了。
如果我没理解错 Contr ...
水木子 发表于 2009-11-23 16:53


真高人也!!!!!!我确实搞复杂了!!!!!
 楼主| 发表于 2009-11-24 18:27:53 | 显示全部楼层
回复 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 ) )

运行后弹出的对话框是空的,请问是出了什么问题?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-20 09:34 , Processed in 0.085993 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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