如何使用Autohotkey在ListView中设置复选框以检查状态

时间:2010-06-10 16:57:50

标签: listview checkbox sendmessage autohotkey

我正在编写一个Autohotkey脚本,需要“检查”并“取消选中”listViewControl中定义的复选框。

我认为这样做的方法是使用LVM_SETITEMSTATE参数将SendMessage用于listview(或者可能是listview项本身?) 但我不知道确切的格式......任何人都有任何想法?

SendMessage, LVM_SETITEMSTATE, 1000, SysListView321

我认为1000表示将选中该复选框,而2000意味着他将被取消选中。

我需要为每个ListViewItem做一个循环吗?

我也尝试过使用

 LV_Modify(0, "+Checked")

但它似乎也不起作用。

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

1 个答案:

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

你知道更优雅的方式吗?