Listview 如何使用自动热键将列表视图中的复选框设置为选中状态

Listview 如何使用自动热键将列表视图中的复选框设置为选中状态,listview,checkbox,sendmessage,autohotkey,Listview,Checkbox,Sendmessage,Autohotkey,我正在编写一个自动热键脚本,需要在listViewControl中定义“选中”和“取消选中”复选框 我认为这样做的方法是使用LVM_SETITEMSTATE参数向listview(或者可能向listview项本身?)发送消息 但我不知道确切的格式…有人知道吗 SendMessage, LVM_SETITEMSTATE, 1000, SysListView321 我认为1000意味着复选框将被选中,2000意味着他将被取消选中 是否需要为每个ListViewItem执行循环 我还试着使用 LV

我正在编写一个自动热键脚本,需要在listViewControl中定义“选中”和“取消选中”复选框

我认为这样做的方法是使用LVM_SETITEMSTATE参数向listview(或者可能向listview项本身?)发送消息 但我不知道确切的格式…有人知道吗

SendMessage, LVM_SETITEMSTATE, 1000, SysListView321
我认为1000意味着复选框将被选中,2000意味着他将被取消选中

是否需要为每个ListViewItem执行循环

我还试着使用

 LV_Modify(0, "+Checked")
但它似乎也不起作用

为了强调这个问题,我不是在创建自己的列表视图,而是在试图操纵现有应用程序列表视图的状态。。。。 (我正在运行安装程序,并使用自动热键脚本按下每个屏幕上的“下一步”按钮,但在此屏幕中,我需要首先选择所有组件,然后才移动到下一个屏幕)
这里有自动热键专家吗?

解决此问题的一种方法(非优雅的方法)是:

你知道更优雅的方式吗

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}                         
    }
}