1

Тема: AHK: Windows 7 Hot Key

Здравствуйте. Моя операционная система Windows 7 64x
Установил AHK с сайта. Решил начать изучение с переведенного мануала а точнее с темы "Общий обзор программы и краткое обучение"
http://script-coding.com/AutoHotkey/Tutorial.html

И сразу же столкнулся с проблемой.
При запуске простейшего скрипта (#z::Run, calc.exe) вылетает ошибка http://s50.radikal.ru/i129/1102/5d/9df0be50455e.jpg
Но скрипт типа (F4::Run, www.yahoo.com) работает исправно. Т.е. проблема с буквенными символами и знаком "#", знаки "^" "!" ошибки не вызывают но и действие при нажатии Control+Alt не выполняется. В сочетании "^!c" например, вылетает та же ошибка.

Помогите с этой проблемой, поиск по форуму не помог решить этой проблемы.

2

Re: AHK: Windows 7 Hot Key

А какая версия AHK установлена? Под 64-битную систему нужна AHK_L Unicode x64.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Windows 7 Hot Key

Установил кстати "Installer for AutoHotkey Basic" видимо в этом проблема. Сейчас переустановлю.

4

Re: AHK: Windows 7 Hot Key

После установки Юникодовксой версии скрипты нужно сохранять в кодировке Utf-8.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Windows 7 Hot Key

Установил через AutoHotkey_L_Install.exe
Копировал с заменой в корневую папку содержимое архива AutoHotkey_Lw64.zip
Проблема осталась прежней.

6

Re: AHK: Windows 7 Hot Key

Может проблема в установленном языке ввода по-умолчанию?
Он должен быть английским. Если установлен русский, то вместо z:: надо писать я::

7

Re: AHK: Windows 7 Hot Key

Да нет, нужно #4

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8 (изменено: Fonko, 2011-02-10 01:08:34)

Re: AHK: Windows 7 Hot Key

Хм я не специалист, погуглил, узнал что при помощи Notpad++ можно сохранять в кодировке Utf-8. Сохранил в этой кодировке ней сразу с расширением ahk, не сработало, сохранил в кодировке Utf-8 без BOM тоже не помогло, сохранил с теми же кодировками в формате txt и вручную перевел  в ahk, тот же результат.

ps. Так, помогло, видимо как-то криво сохраняет, выделил текст в нотпаде, еще раз нажал на смену кодировки, сохранил в тхт и перевел в ahk и сработало. Большое спасибо за помощь !

9

Re: AHK: Windows 7 Hot Key

Как-то сложно больно сохраняешь! Вообще, можно сохранить в Utf-8 простым блокнотом.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Windows 7 Hot Key

teadrinker пишет:

Как-то сложно больно сохраняешь! Вообще, можно сохранить в Utf-8 простым блокнотом.

Пока гуглил на ткнулся на фразу а-ля (блокнот не поддерживает отключение BOM) хотя мне никто не говорил отключать))

PS. Кстати скрипт работает если использованы только русские символы и изначально в нужной кодировке а не переведенные. Так что помогли оба совета.

11

Re: AHK: Windows 7 Hot Key

InFlames правильно указал причину, это русский язык ввода по умолчанию.
Так что все мучения с переустановкой и кодировкой были зря. Решение давно известно — использовать в хоткеях виртуальные коды клавиш вместо букв. AutoHotkey: Начинающему разработчику - Печатаю виртуальными кодами.

12

Re: AHK: Windows 7 Hot Key

YMP пишет:

Так что все мучения с переустановкой и кодировкой были зря.

Ну почему же зря? Свежая версия AHK никогда не помешает!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Windows 7 Hot Key

Юникодная версия, да ещё х64, для новичка? Чтобы он на первом же скопированном скрипте с DllCall'ами обломался?

14

Re: AHK: Windows 7 Hot Key

А что бы ты для 64-битной семёрки посоветовал, чтобы корректно работало?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: AHK: Windows 7 Hot Key

Да вроде всё там корректно работает. А так ни один вариант, вообще-то, не идеален. Проблема в том, что вот версию х64, к примеру, кто тут у нас освоил? Думаю, пока никто. Соответственно, новичку её советовать — это себе на голову, так сказать.

16

Re: AHK: Windows 7 Hot Key

YMP пишет:

Да вроде всё там корректно работает.

В смысле — всё? Старые версии AHK на семёрке глючат, тут, вроде, жаловались, в любом случае лучше ставить какую-то из новых AHK_L. 64-битная версия с точки зрения пользователя от 32-битной ничем не отличается. Другое дело, что лучше выбрать, ANSI или Unicode? Lexikos рекомендует последней вариант, он поддерживается более активно. Если возникнут вопросы — ничего страшного, в крайнем случае, вместе разберёмся!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK: Windows 7 Hot Key

teadrinker пишет:

Старые версии AHK на семёрке глючат, тут, вроде, жаловались

Не помню такого, чтобы именно старые.

teadrinker пишет:

64-битная версия с точки зрения пользователя от 32-битной ничем не отличается.

Если DllCall не использовать. Иначе есть разница в размерах некоторых параметров у API-функций, т.е. нужно другой тип указывать. В некоторых структурах некоторые поля стали длиннее. 32-битная версия АНК будет использовать 32-битные библиотеки, а 64-битная версия — 64-битные. Отсюда и разница.

Насчёт юникодной версии я согласен, в принципе.

18

Re: AHK: Windows 7 Hot Key

У меня не работал скрипт для изменения громкости в системе. Запустил autohotkey.exe в режиме совместимости с WinXP, всё заработало, больше нареканий не было.

19

Re: AHK: Windows 7 Hot Key

YMP пишет:

InFlames правильно указал причину, это русский язык ввода по умолчанию.
Так что все мучения с переустановкой и кодировкой были зря. Решение давно известно — использовать в хоткеях виртуальные коды клавиш вместо букв. AutoHotkey: Начинающему разработчику - Печатаю виртуальными кодами.

Хм опять же я не специалист но если я запишу на русском и сохраню скрипт (^!я::Run, Notepad) в стандартной кодировке, то появится ошибка в которой буква "я" отображена в виде каких-то наборов иных символов. Работает все только с использованием русских символов и Utf-8 вместе.

20

Re: AHK: Windows 7 Hot Key

Ну да, ведь сейчас у Вас юникодная версия АНК стоит, ей нужен скрипт в UTF-8. Ничего странного. Я имел в виду изначальную ситуацию, когда у Вас стояла базовая версия.

21

Re: AHK: Windows 7 Hot Key

YMP пишет:

Если DllCall не использовать. Иначе есть разница в размерах некоторых параметров у API-функций, т.е. нужно другой тип указывать. В некоторых структурах некоторые поля стали длиннее. 32-битная версия АНК будет использовать 32-битные библиотеки, а 64-битная версия — 64-битные. Отсюда и разница.

Но ведь обычные команды используют те же dll. Соответственно, тоже могут некорректно работать.
Выходит, 64-битная версия AHK — всё-таки правильный выбор?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

22

Re: AHK: Windows 7 Hot Key

Почему они будут некорректно работать? Система же видит разрядность экзешника и грузит в его процесс соответствующие библиотеки. А когда функция вызывается в скрипте через DllCall, уже автор скрипта должен знать эту разрядность и правильно указывать типы параметров. Никто его здесь не контролирует.

23

Re: AHK: Windows 7 Hot Key

То есть, считаешь, даже если система 64-битная, учиться лучше на 32-битном AHK?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

24

Re: AHK: Windows 7 Hot Key

Скорее я исхожу из того, что большинство не учиться хотят, а просто чтобы скрипты работали. Скопипастил, запустил — работает. В этом плане с 32-битным меньше проблем будет. А если кто всерьёз учиться хочет, так он сам разберётся, что ему лучше.