Содержание
О проблеме
Решение проблемы
О программе AutoHotkey
Подготовка к использованию программы AutoHotkey
Скрипт и все о нем
Предупреждение
Альтернатива программе AutoHotkey
FAQ
О проблеме
Проблема заключается в невозможности назначить Enter на какое-либо действие, назначить кнопки мыши на "шаг вперёд", или боковую кнопку мыши на что-либо. В общем, всё, что касается проблем с переназначением клавиш.
Решение проблемы
Решение я нашёл на одном из игровых форумов Великобритании. Оно оказалось по-настоящему гениальным и красивым. Вам понадобится скачать одну маленькую программку (с официального сайта и абсолютно бесплатно, это прога с открытым кодом по лицензии GNU). Запустить её надо будет только один раз — она пропишет себя в реестр — и забыть про её существование (только не удалять с компа и не перемещать в другую папку). Затем нужно написать скрипт специальными командами. Список этих команд с пояснениями также можно найти на официальном сайте проги, есть и русская версия. Но, применительно к данной проблеме, скрипт вам писать не надо будет. Я его уже написал (см. ниже). Вот такая схема примерно. Теперь конкретно.
О программе AutoHotkey
Вам нужно скачать "zip file" в строчке "Install Autohotkey". Понятно дело, распаковать его и сразу поместить в нужную папку (где эта прога будет лежать много лет...).
Ссылка на скачивание - www.autohotkey.com/download/
Скачайте также русскоязычую инструкцию (если захотите создавать собственные скрипты):
Ссылка на скачивание - www.script-coding.info/AutoHotkey/AutoHotkey.zip
Теперь запустите программу AutoHotkey.exe, там будет вопрос о создании пробного скрипта, ответьте ДА. Всё. Больше саму программу запускать не понадобится.
Создайте блокнотом файл с содержанием:
a::b
Сохраните его, переименуйте расширение с "*.txt" на "*.ahk", имя значения не имеет.
Теперь попытайтесь открыть этот файл, винда спросит: "какой программой открывать это чудо?". Вам нужно выбрать тот самый файл AutoHotkey.exe и поставить галочку, чтоб такие файлы всегда открывались этой программой.
То есть, вам просто нужно привязать расширение "*.ahk" к файлу AutoHotkey.exe
Как только вы это сделали, удалить созданный вами файл *.ahk (с содержимым a:.
Подготовка к использованию программы AutoHotkey
Зайдите в игру и назначьте те действия, которые вы хотите, но не можете переназначить на нужные вам клавиши, на какие-нибудь неиспользуемые в игре и находящиеся "у чёрта на рогах" клавиши. Например, вы хотите назначить действие на Enter. Для этого, на данном этапе, назначьте действие например на P. И запомните, что именно на P. Выходите из игры, желательно из Social Club тоже.
Скрипт и все о нем
Внимание! Скрипт содержит мои конкретные настройки. Вам нужны последние три строки. Меняйте их, назначая те, что вам удобны.
Теперь откройте блокнот и вставьте в него вот этот скрипт:
#SingleInstance force
#InstallKeybdHook
#InstallMouseHook
#NoEnv
SendMode InputThenPlay
SetTimer, wr
return
wr:
WinGet, pname, ProcessName, A
if pname = GTAIV.exe
{
suspend, off
}
else
{
suspend, on
}
return
Enter::p
MButton:
XButton1::i
Сохраните файл, затем смените расширение на ahk.
А теперь положите его в папку с игрой, а ярлык на него — в автозагрузку Windows. Запустите скрипт (ну, или перезагрузитесь).
О скрипте
Если вы внимательно посмотрите на содержание моего скрипта, то увидите, что там есть и название загрузочного файла GTA IV. Внизу, последние три строчки — это "биндинг" клавиш. В принципе, это всё, что нужно знать о скрипте чтобы изменить назначение любых клавиш на любые другие в любой запущенной под Виндоусом программе/игре. Так что скрипт универсальный. Не только для GTA IV.
Впишите вместо загрузочного файла GTAIV.exe любой другой и вместо одних клавиш — другие. Список команд есть в инструкции к AutoHotkey. Вот коротко:
Enter Enter
! Alt
^ Ctrl
+ Shift
< Левая из пары (например, <^ значит левый Ctrl)
> Правая из пары
LButton Левый глаз мышки
RButton Правый глаз мышки
MButton "Третий глаз" мышки
WheelDown Колесо вниз
WheelUp Колесо вверх
XButton1 Четвёртая кнопка мыши (боковая)
XButton2 Пятая кнопка мыши
Разрешается одновременно запускать несколько скриптов. А если внимательно почитаете инструкцию, то поймёте как все ваши скрипты записать в один (для удобства).
Заметьте, что переназначение клавиш будет включаться через 2.5 секунды после входа в игру и выключаться через 2.5 сек после выхода.
Принцип работы
Скрипт создаёт хук клавиатуры и мышки, заставляя ловить на лету нажатия нужных клавиш (только тех, которые используются в скрипте) и передавать их программе уже как другие клавиши. В моём примере нажатие Enter передаётся в игру как P, а P в игре забито под действие. Гениально и просто. Тот редкий случай, когда универсальность не идёт во вред качеству.
Предупреждение
Поскольку переназначенная вами клавиша расценивается программой (игрой) как другая, то и подсказки будут всплывать о нажатии тех, других клавиш, а если программа будет ждать от вас нажатия именно переназначенной клавиши, то желаемого эффекта не будет (так как прога будет получать другой код).
Альтернатива программе AutoHotkey
Если у кого-то когда-то почему-то что-то не получится с AutoHotkey, есть другая программа для той же цели. Называется XMouse, она вроде не такая функциональная, но попроще, тоже качается с официального сайта и тоже бесплатно. Но я ей не пользовался, так что не ручаюсь.
Ссылка на скачивание - www.highrez.co.uk/downloads/XMouseButtonControl.htm
FAQ
В: Что означают буквы S и H на иконке скрипта в панели задач?
О: S — “Suspend Hotkeys” («приостановить действие горячих клавиш»), H — это просто “Hotkeys” (мол, горячие клавиши включены). Сам скрипт работает в обоих случаях.
В: Почему после применения скрипта не работает Enter на экране с вопросом о сохранении или выходе из игры (где надо ответить EnterДа или EscНет)?
О: Потому что в данном скрипте клавиша Enter перехватывается скриптом и расценивается как «действие». Игра же ждёт от вас нажатия именно Enter-а. Выход есть – чтобы ответить Да на таких экранах (когда курсора мыши не видно), нажимайте NumpadEnter (узкий Enter на цифровой клавиатуре).