1

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

我认为这样做的方法是使用 LVM_SETITEMSTATE 参数将 SendMessage 用于列表视图(或者可能是列表视图项目本身?),但我不知道确切的格式......有人知道吗?

SendMessage, LVM_SETITEMSTATE, 1000, SysListView321

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

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

我也曾尝试使用

 LV_Modify(0, "+Checked")

但它似乎也不起作用。

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

4

1 回答 1

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

你知道更优雅的方式吗?

于 2010-06-13T14:12:13.683 回答