Я получил этот ответ от "Джоэл Т. 33 / М / Сиэтл, Вашингтон" через Аардварк. Я публикую это здесь, потому что это было очень полезно.
-
Ваша вторая форма должна действительно работать; попробуйте вставить только эти 4 строки в новый скрипт и запустите его, чтобы увидеть. Скорее всего, проблема в том, что во втором примере «hlwvar = Hello World» на самом деле не выполняется, потому что он не находится вверху скрипта. Когда AHK впервые запускает скрипт, он запускается сверху и выполняется, пока не встретит определение «return» или определение горячей клавиши / горячей клавиши. Следовательно, вы всегда должны определять свои глобальные переменные и любые другие глобальные настройки в верхней части вашего скрипта, и как только все вещи по инициализации скрипта будут выполнены, завершите их возвратом. Затем поместите все свои горячие клавиши / горячие клавиши / функции ниже этой точки.
Одна вещь, которую мне нравится делать, это помещать все мои глобальные вещи в функцию, например
В этом()
{
Глобальный
someglobalvar = myvalue
вернуть
}
Тогда в верхней части моего сценария у меня есть
В этом()
вернуться
Это позволяет с легкостью определить, где живут мои предметы инициализации, а также перенести процедуру инициализации в другое место, если это необходимо. Обратите внимание, что ключевое слово «global» должно быть первой командой в определении функции, если вы хотите, чтобы все переменные, назначенные внутри указанной функции, были доступны глобально.