【问题标题】:How to set a checkbox to checked state in a ListView using Autohotkey如何使用 Autohotkey 在 ListView 中将复选框设置为选中状态
【发布时间】:2010-06-13 22:12:13
【问题描述】:

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

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

SendMessage, LVM_SETITEMSTATE, 1000, SysListView321

我认为1000表示复选框将被选中,2000表示他将被取消选中。

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

我也尝试过使用

 LV_Modify(0, "+Checked")

但它似乎也不起作用。

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

【问题讨论】:

    标签: listview checkbox sendmessage autohotkey


    【解决方案1】:

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

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

    你知道更优雅的方式吗?

    【讨论】:

      猜你喜欢
      • 2017-04-21
      • 2020-01-28
      • 1970-01-01
      • 2023-01-26
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      相关资源
      最近更新 更多