我正在编写一个Autohotkey脚本,需要“检查”并“取消选中”listViewControl中定义的复选框。
我认为这样做的方法是使用LVM_SETITEMSTATE参数将SendMessage用于listview(或者可能是listview项本身?) 但我不知道确切的格式......任何人都有任何想法?
SendMessage, LVM_SETITEMSTATE, 1000, SysListView321
我认为1000表示将选中该复选框,而2000意味着他将被取消选中。
我需要为每个ListViewItem做一个循环吗?
我也尝试过使用
LV_Modify(0, "+Checked")
但它似乎也不起作用。
为了强调这个问题,我没有创建自己的列表视图,我正在尝试操纵现有应用程序ListView的状态.... (我正在运行安装程序并使用AutoHotKey脚本我按下每个屏幕上的下一个按钮,但在此屏幕中我需要先选择所有组件,然后才移到下一个屏幕) 这里有AutoHotKey专家吗?
答案 0 :(得分:2)
解决这个问题的一种方法(非优雅方式)是:
ControlGet, List, List,, SysListView321,,,,
{
Loop, Parse, List, `n ; Rows are delimited by linefeeds (`n).
{
RowNumber := A_Index
Loop, Parse, A_LoopField, %A_Tab% ; Fields (columns) in each row are delimited by tabs (A_Tab).
{
if A_Index = 3
{
IfInString, HaystackTemp, %A_LoopField%
{
ControlSend, SysListview321, {Space}
}
}
}
ControlSend, SysListview321, {Down}
}
}
你知道更优雅的方式吗?