В программе есть контрол класса SysListView. Как мне выбрать конкретный элемент в нём по названию?
Я пытался это сделать просто через `ControlSend, SysListView321, %VarIcon%, Select an image` по сути отправляя название элемента как нажатия клавиш, но судя по всему если в списке есть похожие по названию элементы, то он выбирает не всегда точно (т.е. может выбрать просто похожий по названию).
Пытался перебирать элементы в цикле пока он не выберет нужное, но в этом случае у меня скрипт "зависал" - такое впечатление, что он ждёт какого-то inputa от меня - т.е. если покликать мышкой или понажимать стрелки на клавишах, то он продолжает выполнение. Не могу понять причину такого поведения.
Сам код. В VarIcon хранится название элемента, который хотим выбрать - например scroll_air.
ControlFocus, SysListView321, Select an image
Loop {
; выбираем item в списке ControlSend, SysListView321, %VarIcon%, Select an image
; цикл проверяет какой item выбран в SysListView321 ControlGet, ListStrings, List, Selected, SysListView321, Select an image Loop, Parse, ListStrings, `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). ; MsgBox Row #%RowNumber% Col #%A_Index% is %A_LoopField%. TestString = %A_LoopField% ;MsgBox "Sent: " %VarIcon%, "Selected: " %TestString% }
Я пытался это сделать просто через
`ControlSend, SysListView321, %VarIcon%, Select an image`
по сути отправляя название элемента как нажатия клавиш, но судя по всему если в списке есть похожие по названию элементы, то он выбирает не всегда точно (т.е. может выбрать просто похожий по названию).
Пытался перебирать элементы в цикле пока он не выберет нужное, но в этом случае у меня скрипт "зависал" - такое впечатление, что он ждёт какого-то inputa от меня - т.е. если покликать мышкой или понажимать стрелки на клавишах, то он продолжает выполнение. Не могу понять причину такого поведения.
Сам код. В VarIcon хранится название элемента, который хотим выбрать - например scroll_air.
ControlFocus, SysListView321, Select an image
Loop {
; выбираем item в списке
ControlSend, SysListView321, %VarIcon%, Select an image
; цикл проверяет какой item выбран в SysListView321
ControlGet, ListStrings, List, Selected, SysListView321, Select an image
Loop, Parse, ListStrings, `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).
; MsgBox Row #%RowNumber% Col #%A_Index% is %A_LoopField%.
TestString = %A_LoopField%
;MsgBox "Sent: " %VarIcon%, "Selected: " %TestString%
}
} Until (TestString = VarIcon)