1

Тема: Нужно полное блокирование (и подмена) сочетания клавиш в игре.

Здравствуйте!
Собственно речь идёт о сочетании Ctrl с вращением колёсиком мышки.
К нему игрой привязано определённое действие. Точнее оно привязано к самому вращению колёсика,
но при нажатом Ctrl делает тоже самое.
А мне нужно, чтобы при нажатом Ctrl делалось другое действие.
Это вообще как то возможно?

Пробовал вставлять в начало скрипта

#InstallKeybdHook
#InstallMouseHook

но эффекта нет..

Помогите, пожалуйста!
Буду премного благодарен.

2

Re: Нужно полное блокирование (и подмена) сочетания клавиш в игре.

Весь код покажите.

3

Re: Нужно полное блокирование (и подмена) сочетания клавиш в игре.

Скажу сразу - выяснил, что в обычных виндовых программах - срабатывает как надо, но в игре - нет ((
Без понятия в чём суть отличия.

#InstallKeybdHook
#InstallMouseHook
#IfWinActive Russian Fishing 4

WheelUp::
{
SoundBeep
return
}

Я специально упростил код до предела - была проверка на прижатость Ctrl и т.п.
Сейчас просто пытаюсь получить писк от вращения колёсика ВМЕСТО реакции игры на вращение вверх.
Но остаётся и писк и реакция. (

Втыкание первых двух команд над SoundBeep тоже не помогло.
(Да, я знаю, что полный нуб в автохоткее).

4

Re: Нужно полное блокирование (и подмена) сочетания клавиш в игре.

Возможно поможет, но не уверен: (добавить в самый вверх скрипта)

SetKeyDelay, 10, 10
SetKeyDelay, 0, 10

Так же можно попробовать:

Hotkey, WheelUp, Start
Hotkey, WheelUp, On

Start:
SoundBeep
Return

5 (изменено: __Михаил__, 2020-08-20 02:50:54)

Re: Нужно полное блокирование (и подмена) сочетания клавиш в игре.

Некоторые игры имеют свой перехват событий клавиш и фиг им что отправить извне.

Ещё вариант - повысить права самому скрипту (так же вначале скрипта):

;Запуск от Администратора:
full_command_line := DllCall("GetCommandLine", "str")
if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)"))
{
 Try
  {
   If A_IsCompiled
    RunWait *RunAs "%A_ScriptFullPath%" /restart
   Else
    RunWait *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
  }
 }
If Not A_IsAdmin
{
 TrayTip, , Обычные права доступа
 ;MsgBox,Administrator rights not found, the program might not work correctly.
}