Цитата 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)
работать будет разумеется совместно с уже назначенным хоткеем, по этому либо очищать используемую в будущем кнопку(-и) от хоткея, либо использовать любые другие свободные.
Либо совсем забить на все это и просто делать (как вы и сделали) отдельные макросы )