Как установить флажок в проверенное состояние в ListView с помощью Autohotkey - PullRequest
0 голосов
/ 10 июня 2010

Я пишу сценарий Autohotkey, который должен проверять и снимать флажки, определенные внутри listViewControl.

Я думаю, что способ сделать это - использовать SendMessage для просмотра списка (или, возможно, длясам элемент списка?), используя параметр LVM_SETITEMSTATE, но я не знаю точный формат ... у кого-нибудь есть идеи?

SendMessage, LVM_SETITEMSTATE, 1000, SysListView321

я думаю, что 1000 означает, что флажок будет установлен, а 2000 означает, чтоон не будет проверен.

мне нужно сделать цикл для каждого ListViewItem?

Я также пытался использовать

 LV_Modify(0, "+Checked")

Но, похоже, он не работаеттакже.

Чтобы подчеркнуть проблему, я не создаю свой собственный вид списка, я пытаюсь манипулировать состоянием существующего приложения ListView .... (я запускаю установщик и использую AutoHotKeyскрипт Я нажимаю следующие кнопки на каждом из экранов, но на этом экране мне нужно сначала выбрать все компоненты и только затем переходить к следующему экрану. Есть ли здесь эксперты по AutoHotKey?

1 Ответ

2 голосов
/ 13 июня 2010

Один из способов решения этой проблемы (не элегантный способ):

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

Ты знаешь более элегантный способ?

...