1

Тема: AHK: перебор элементов связанных/не связанных таблиц

Здравствуйте.

Есть сложный интерфейс редактора CreationKit для игры Scyrim:
http://imageshost.ru/photo/312973/id2566045.html

Начинаю производить перебор элементов таблиц следующим кодом:


	WinActivate ;

	;_____________________________ первый объект
	WinWait, Object Window, Filter, 3 ;
	IfWinNotActive, Object Window, Filter, WinActivate, Object Window, Filter
	WinWaitActive, Object Window, Filter
	MouseClick, left,  220,  53
	MouseClick, left,  220,  53

	;_____________________________ копируем имя первого объекта в буфер
	WinWait, Static, Has Platform/Languag
	IfWinNotActive, Static, Has Platform/Languag, WinActivate, Static, Has Platform/Languag
	WinWaitActive, Static, Has Platform/Languag
	Send, {CTRLDOWN}c{CTRLUP}{ESC}

	;_____________________________ записываем в CellView имя объекта
	WinWait, Cell View, No Cell Selected
	IfWinNotActive, Cell View, No Cell Selected, WinActivate, Cell View, No Cell Selected
	WinWaitActive, Cell View, No Cell Selected
	Send, {CTRLDOWN}v{CTRLUP}

	;_____________________________ открываем USE INFO у первого объекта
	WinWait, Object Window, Filter
	IfWinNotActive, Object Window, Filter, WinActivate, Object Window, Filter
	WinWaitActive, Object Window, Filter
	MouseClick, right,  220,  53
	Send, {UP}{ENTER}

Дополнительные пояснения:
1 шаг: открываю свойства первого элемента окна "Object Window"(на картинке это "Bridge01")
          т.к. позиция 1 элемента внутри окна будет постоянной, то использую относительные координаты.
2 шаг: копирую название элемента в буфер(возможно будет проверка на значение некоторых CHECKBOX).
3 шаг: при активации фокус окна "Cell View" стоит на поле фильтра "No Cell Selected"
          заполняю это поле значением из второго шага.
4 шаг: для окна "Object Window" для первого элемента открываю через свойства элемента таблицу "USE Report", делаю при помощи MouseClick+Key так будет быстрее.

Далее у меня "затык" . Мне необходимо обойти элементы таблицы "USE Report", при этом после каждого двойного клика по элементу таблицы "USE Report", в таблице "Cell View" в разделе "Editor ID" будет оказываться один/несколько объектов в свойствах которых мне необходимо нажать CHECKBOX.

Собственно вопрос: Подскажите пожалуйста, как средствами AutoHotkey осуществить перебор элементов таблицы? Вообще управлять параметрами обхода таблицы возможно? т.е. в саму таблицу на первый элемент я попадаю легко через относительные координаты, по таблице я могу двигаться при помощи стрелки, но как определить конец таблицы или количество элементов?

2 (изменено: Zergii, 2012-11-29 22:51:15)

Re: AHK: перебор элементов связанных/не связанных таблиц

Перебор элементов таблицы осуществляется следующим кодом:


;_____________________________ цикл по таблице USE INFO 
	ControlGet, NumberOfObj, List, Count, SysListView322, Use Report:, 
	Loop %NumberOfObj%
	{
		Send, {DOWN}
	}

1. При помощи "Window Spy" получаем параметр окна "Use Report:"... в данном случае это "SysListView322".
2. Функция "ControlGet" помещает в переменную "NumberOfObj" значение "Count" равное количеству элементов(строк) в таблице "Use Report:".
3. Далее следует цикл движения по таблице "Use Report:"

Продолжение следует