AHK,如何通过列表更新GUI热键的值

问题描述

Gui,Add,Text,x20 y13 Left,spam left click hotkey
Gui,Hotkey,x140 y10 vHKspamleft
Gui,x20 y53 Left,hold left click hotkey
Gui,x140 y50 vHKholdleft
Gui,Submit,NoHide

hotkeyList := ["HKspamleft","HKholdleft"]
for key,val in hotkeyList
    GuiControl,% %val%,x

我有两个GUI热键。我希望能够通过controlID列表将这些热键的显示值设置为“ x”。上面的代码不会更新值,但是可以使用硬编码GuiControl,HKspamleft,x。如何通过ControlID列表完成此操作?

解决方法

您要通过告诉AHK在此参数中计算表达式来退出旧语法:
% %val%,但随后您仍在使用引用变量%%的旧方法。
在现代表达式语法中,您只需输入变量名称即可引用它:

hotkeyList := ["HKspamleft","HKholdleft"]
for key,val in hotkeyList
    GuiControl,% val,x