1 (изменено: Vsevolod, 2020-11-24 18:12:08)

Тема: AHK: Как сделать чтение переменных в биндах

Всем привет, решил сделать для своего скрипта возможность менять бинды, я уже сделал специальное gui настроил ini все проверил, но в самый последний момент столкнулся с такой проблемой. Записать переменную в бинде нельзя. Что делать? Может я как то неправильно указал переменную? Или это просто невозможно сделать?
Мне выдаёт ошибку:

Error at line 138.

Line Text: *~$%M%::
Error: Invalid hotkey.

The program will exit.

2

Re: AHK: Как сделать чтение переменных в биндах

Vsevolod


var := "F1" ; нужный хотей, например F1

Hotkey, %var%, MyLabel
return

MyLabel: ; будет выполняться нажав F1
...
return
GD

3

Re: AHK: Как сделать чтение переменных в биндах

Vsevolod, Вы пытаетесь горячую клавишу выразить через переменную?

4 (изменено: ypppu, 2020-12-05 12:03:40)

Re: AHK: Как сделать чтение переменных в биндах

ypppu
Да.

5 (изменено: ypppu, 2020-12-05 12:04:05)

Re: AHK: Как сделать чтение переменных в биндах

Botsy
Окей , а если мне нужно отключить этот бинд то что делать? Раньше я писал так HotKey, *~$F1, off но тут это не работает.

6 (изменено: pro100andrik94, 2020-11-25 11:56:26)

Re: AHK: Как сделать чтение переменных в биндах

Vsevolod, попробуйте так.

 HotKey, *~$F1, , off

7 (изменено: ypppu, 2020-12-05 12:04:30)

Re: AHK: Как сделать чтение переменных в биндах

pro100andrik94
Мне переменная нужна. В это то и проблема, он не читает переменные, у меня есть gui, там пользователь выбирает бинды которые записываются в переменную, мне нужно что бы HotKey работал с переменными.
Или просто отключить переменную, что бы при нажатии на клавишу, она не срабатывала.

8

Re: AHK: Как сделать чтение переменных в биндах

Vsevolod Почитай справку https://www.autohotkey.com/docs/commands/Hotkey.htm, там есть и включения и выключения и вариант состояния Toggle.

GD

9

Re: AHK: Как сделать чтение переменных в биндах

Vsevolod пишет:

Мне переменная нужна. В это то и проблема, он не читает переменные, у меня есть gui, там пользователь выбирает бинды которые записываются в переменную, мне нужно что бы HotKey работал с переменными

Если с переменными то тогда так.

 HotKey, % Peremennaya, Label 

10

Re: AHK: Как сделать чтение переменных в биндах

Vsevolod пишет:

Или просто отключить переменную, что бы при нажатии на клавишу, она не срабатывала

Вот тут тогда еще может быть у вас проблема. Если пользователь поменяет горячую клавишу и ваш скрипт назначит на новый хоткей действия, то и старый хоткей все еще будет выполнять эти действия. Тогда вам и надо будет старый хоткей выключать способом что я написал в 6 сообщении и тогда уже новый назначать, либо просто записать всё в ini файл, перезапустить скрипт и считать уже с него новые переменные которые и пойдут в хоткеи.

11

Re: AHK: Как сделать чтение переменных в биндах

pro100andrik94

Поменять метку, что выполняется при нажатии на хоткей через перезапуск?
Такое только у плохих кодеров вижу. Я лично храню список в памяти, по нему и ориентируюсь что отключить и заменить.
Зачем лишний раз тревожить ЖД на запись / чтение данных?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

12

Re: AHK: Как сделать чтение переменных в биндах

__Михаил__, так я и говорю что нужно будет старый хоткей очищать перед назначением нового. По типу

Peremennaya := F1
HotKey, % Peremennaya, , off
Peremennaya := F2
HotKey, % Peremennaya, Label