AutoHotKey:访问坐标数组

时间:2015-11-01 14:42:09

标签: arrays 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 个答案:

答案 0 :(得分:1)

由于您希望在tab_index_array.Push("332,490") 的每个字段中存储字符串,因此需要将其放在引号中,例如

if()

函数调用和定义(包括.push()strLen(),{{1}}等等,就像函数在其他编程语言中一样工作。您只能在大多数AutoHotkey命令中留下引号,这些命令非常舒适,但有时会让人感到困惑。

更多信息也可以在http://ahkscript.org/docs/Variables.htm

找到