基 础 函 数 参 考


ControlListView

发送命令到 ListView32 控件.

ControlListView ( "标题", "文本", 控件ID, "命令" [, 选项1 [, 选项2]] )

参 数

标题 目标窗口标题.
文本 目标窗口文本.
控件ID 控件标识符. 相关说明见 Controls.
命令 发送到控件的命令 (见下文).
选项1 [可选参数] 某些命令需要的附加参数.
选项2 [可选参数] 某些命令需要的附加参数.

返 回 值

返回的结果取决与命令, 如下表所列. 若发生错误(如命令或窗口/控件无效),则 @error = 1.


命令, 选项1, 选项2 结果
"DeSelect", 从 [, 到] 取消一个或多个项目.
"FindItem", "搜索字符串" [, 子项目] 返回字符串项目索引. 若未找到指定字符串,则返回 -1.
"GetItemCount" 返回列表项目的数量.
"GetSelected" [, 选择] 返回选中项目的索引. 如果"选择" = 0 (默认) 则返回选中的第一个项目.
如果"选择" = 1 则返回由 "|" 分隔的所有选中项目, 例如: "0|3|4|10".
如果没有选中任何项目, 则返回空字符串 "".
"GetSelectedCount" 返回选中项目的数量.
"GetSubItemCount" 返回子项目数量.
"GetText", 项目, 子项目 返回指定项目/子项目的文本.
"IsSelected", 项目 项目选中则返回 1, 否则返回值 0.
"Select", 从[, 到] 选中一或多个项目.
"SelectAll" 选中所有项目.
"SelectClear" 取消所有选中项目.
"SelectInvert" 切换当前选择.
"ViewChange", "视图" 切换当前视图样式. 包括:
"list"(列表), "details"(详细信息),
"smallicons"(小图标), "largeicons"(大图标).


所有项目/子项目基于 0 开始计算. 即第一个项目/子项目为 0, 第二个为 1, 依此类推.
ListView32 的 "details"(详细信息)视图中, 可以将 "行" 看作项目, 将 "列" 看作子项.

备 注

使用 32 位 Autoit 进程读取 64 位进程时,命令可能会失败. 同理,反之也可能失败.

相 关 函 数

ControlCommand

函 数 示 例


ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "SelectAll")
ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "Deselect", 2, 5)
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "GetText", 9, 0))
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "FindItem", "14 KB", 1))
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "GetSelected", 1))

;以上为官方原示例,以下为中文网文档附加示例:

MsgBox(0,0,'请注意看桌面图标')
;返回列表项目总数
$GetItemCount=ControlListView('Program Manager','','SysListView321','GetItemCount')
MsgBox(0,'返回列表中项目的数量',$GetItemCount)

;搜索指定字符串
$FindItem=ControlListView('Program Manager','','SysListView321','FindItem','Internet Explorer')
MsgBox(0,'搜索字符串','Internet Explorer  位置:'&$FindItem)


;切换当前的视图
ControlListView('Program Manager','','SysListView321','ViewChange','details')
Sleep(1000)
ControlListView('Program Manager','','SysListView321','ViewChange','smallicons')
;选择其中几个项目
$Select=ControlListView('Program Manager','','SysListView321','Select',1,3)
WinActivate('Program Manager') ;激活窗口来预览效果
Sleep(1000)
;返回选中项目的位置
$GetSelected=ControlListView('Program Manager','','SysListView321','GetSelected',1)
If $GetSelected<>'' Then MsgBox(0,'当前选中项目的位置',$GetSelected)
;返回子项目的数量
$GetSubItemCount=ControlListView('Program Manager','','SysListView321','GetSubItemCount')
MsgBox(0,'返回子项目的数量',$GetSubItemCount)
;返回指定项目/子项目的文本
$GetText=ControlListView('Program Manager','','SysListView321','GetText',0)
MsgBox(0,'返回指定项目/子项目的文本',$GetText)

WinActivate('Program Manager') ;激活窗口来预览效果
ControlListView('Program Manager','','SysListView321','SelectAll')
Sleep(1000)
ControlListView('Program Manager','','SysListView321','DeSelect',1,3)
Sleep(1000)
ControlListView('Program Manager','','SysListView321','SelectInvert')
Sleep(1000)
ControlListView('Program Manager','','SysListView321','SelectClear')
Sleep(1000)
MsgBox(0,0,'没了 ! 睡觉吧 !')

provider with jb51.net (unicode)