Цитата Meilis:
В общем, есть предположение почему это не работает на хоткее. Чтоб не сбивать ранее установленный хоткей на какую-нибудь другую операцию.
У максскрипта нет возможности получения доступа ко всем кнопкам клавиатуры. И как вы поняли (и как следует из хелпа), есть только возможность отслеживать значение глобальных системных переменных (true\false)- keyboard.shiftPressed, keyboard.controlPressed, keyboard.altPressed, keyboard.escPressed (смотрите хелп максскрипта)
Реализовать возможно можно, если использовать dotNet. Т.е писать свой обработчик событий, который будет проверять что нажимается, нажимаются ли системные кнопки (keyboard.shiftPressed и т.д), с уже назначенными хоткями, пустые и т.д и т.п и тдтп ) Как то так. И возможно можно будет реализовать перехват системных (keyboard.shiftPressed и т.д) при определенной комбинации для своих нужд. Но я, к примеру, совершенно не вижу в этом смысла. Если вы видите, смотрите хелп по SDK ))
Если не заморачиваться, то можно использовать IsKeyDown
, просто загнав заранее в кастомный массив кнопки
, которые будут нажиматься при использовании этого скрипта и отслеживать их нажатие (берем значение из массива)
Примитивный пример. Скрипт повешен на хоткей NumPad0. В массиве NumPad1 и MButton (средняя кн. мыши)
local isKeyDown = (dotNetClass "managedservices.keyboard").isKeyDown
local keys = dotNetClass "system.windows.forms.keys"
local key_arr = #(isKeyDown keys.NumPad1, isKeyDown keys.MButton)
![](https://b6.3ddd.ru/media/images/tinymce_images/4c110c039245e20935d481b5997af05e.gif)
работать будет разумеется совместно с уже назначенным хоткеем, по этому либо очищать используемую в будущем кнопку(-и) от хоткея, либо использовать любые другие свободные.
Либо совсем забить на все это и просто делать (как вы и сделали) отдельные макросы )