AutoHotKey: доступ к массиву координат

В AutoHotKey я определил глобальный массив как:

tab_index_array := []

Далее в скрипте я вызываю функцию для построения таблицы:

BuildTabIndexArray()
{
  global

  ; coords of each of the 8 selectable tabs on screen
  tab_index_array.Push(332,490)
  tab_index_array.Push(378,490)
  tab_index_array.Push(433,490)
  tab_index_array.Push(486,490)
  tab_index_array.Push(557,490)
  tab_index_array.Push(611,490)
  tab_index_array.Push(685,490)
  tab_index_array.Push(745,490)
}

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

ClickTab(which_tab)
{
  global

  coords_ := []
  tab_str := tab_index_array[which_tab]

  stringsplit, coords_, tab_str, ","

  x_ := coords_[1]
  y_ := coords_[2]

  SplashTextOn,,, %x_% "`n" %y_% 
  SetTimer, KillSplashText, -5000

  ;SetMouseDelay, slow_click_wait_time
  ;SendEvent {click, %x_%, %y_%}
  ;SetMouseDelay, click_wait_time
}

Что я делаю неправильно? Все, что я хочу сделать, это взять координаты из массива и передать их в команду SendEvent. Буду очень признателен за любую помощь, так как я борюсь с этим уже некоторое время.

Спасибо,

1 ответ

Решение

Так как вы хотите сохранить строку в каждом из полей tab_index_arrayнужно поставить в кавычки, вроде

tab_index_array.Push("332,490")

Вызовы функций и определения, которые включают if(), .push(), strLen() и так далее, работают так же, как функции работают и на других языках программирования. Вы можете оставить только кавычки в большинстве команд AutoHotkey, что довольно удобно, но иногда сбивает с толку.

Дополнительную информацию также можно найти по адресу http://ahkscript.org/docs/Variables.htm

Другие вопросы по тегам