Как программно извлечь список горячих клавиш
Вопрос: Подскажите как можно получить список горячих клавиш с помощью Revit API.
Ответ: В пользовательском интерфейсе есть команда, с помощью которой можно экспортировать список горячих клавиш в XML-файл.
По идее эту команду можно выполнить программно, используя PostCommand.
Правда придется извратиться, чтобы проделать это просграммно. Можно испльзовать как Revit API PostCommand, так и библиотеку .NET UI Automation и выполнить следующую последовательность:
Вид > Окна > Пользовательский интерфейс > Горячие клавиши > Импорт > Ввести имя файла > Сохранить > Отмена
При использовании PostCommand нужно будет обработать все всплывающие диалоги с помощью Revit API.
Revitalizer предлагает другой способ: Просто прочитайте этот файл:
- C:\Users\[Имя пользователя]\AppData\Roaming\Autodesk\Revit\Autodesk Revit 2015\KeyboardShortcuts.xml
Как видите, файл хранится в профиле пользователя. Поэтому на одном компьютере их может быть несколько.
Вопрос: Этот файл всегда генерируется автоматически, или нужно запустить какую-то команду в Revit, чтобы он появился?
Revit всегда его содержит в актуальном состоянии и обновляет каждый раз, когда я меняю горячие клавиши?
Ответ: Да, Revit обновляет этот файл сразу же, как я поменял клавиши в пользовательском интерфейсе.
Я не знаю, существует ли этот файл если пользователь не менял ничего в горячих клавишах. Но, я полагаю, что файл должен быть всегда, так как он содержит не только пользовательские горячие клавиши, но и предопределенные.
Хотя дальнейшее тестирование показало, что XML-файл отсутствует, если пользователь не изменял и не задавал свои горячие клавиши.
Если пользователь не менял горячие клавиши, то можно предположить, что используется стандартный набор.
А для того, чтобы сгенерировать файл с горячими клавишами по умолчанию, вы можете сделать изменения в горячих клавишах, извлечь XML-файл и использовать этот файл как шаблон, за исключением изменений, которые вы сделали.
Атрибуты CommandId и Shortcuts не зависят от языка. И если вам нужна только эта информация, то одно файла будет достаточно.
Источник: http://thebuildingcoder.typepad.com/blog/2015/02/keyboard-shortcuts-and-other-news.html#4
Обсуждение: http://adn-cis.org/forum/index.php?topic=1893
Опубликовано 24.02.2015