函数参考


ControlListView

向指定的 ListView32 控件发送命令.

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

参数

窗口标题 目标窗口标题.
窗口文本 目标窗口文本.
控件ID 目标控件.请查看关于控件的说明.
命令 要发送到控件的命令(请看下表).
选项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 控件,可把"项目"看作它的"行",而把"子项目"看作它的"列".

注意/说明

当使用32位的Autoit去读取64位进程的数据时,可能会失败. 同理,使用64位的Autoit去读取32位应用程序的数据也可能失败.

相关

ControlCommand

示例/演示


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

;搜索指定字符串
$FindItem=ControlListView('Program Manager','','SysListView321','FindItem','Internet Explorer')
MsgBox(4096,'搜索字符串','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(4096,'当前选中项目的位置',$GetSelected)
;返回子项目的数量
$GetSubItemCount=ControlListView('Program Manager','','SysListView321','GetSubItemCount')
MsgBox(4096,'返回子项目的数量',$GetSubItemCount)
;返回指定项目/子项目的文本
$GetText=ControlListView('Program Manager','','SysListView321','GetText',0)
MsgBox(4096,'返回指定项目/子项目的文本',$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(4096,0,'没了!睡觉吧!')