Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Выбрать конкретный элемент в контроле SysListView на скрипте для AutoHotkey

Darkloke Знаток (304), открыт 3 недели назад
В программе есть контрол класса 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%
}

} Until (TestString = VarIcon)
0 ответов
Похожие вопросы