Для меня все приведенные выше ответы являются неудовлетворительными, потому что они ограничивают то, какие комбинации я могу использовать в качестве пользовательских ярлыков или какие действия я могу выполнить, или они требуют слишком много работы для чего-то, что должно быть простым.
Мое решение состоит в том, чтобы использовать AutoHotkey для "преобразования" моих желаемых комбинаций клавиш в существующие сочетания клавиш, которые Outlook 2016 (или Excel 2016, или что у вас есть) ожидает для этих действий.
Так, например, когда у меня выбрано электронное письмо и я нажимаю [Ins], я хочу, чтобы оно было помечено как прочитанное, поэтому у меня есть скрипт AutoHotkey, заменив его на [Ctrl-Enter]. Или всякий раз, когда я нажимаю [Ctrl-f], я хочу перейти к окну поиска (черт!) но Outlook ожидает [Ctrl-e] для этого, поэтому у меня есть сценарий, отправляющий ему [Ctrl-e]. Сценарий выглядит так:
SetTitleMatchMode RegEx
#IfWinActive - Outlook$
Ins::Send ^{Enter}
^f::Send ^e
#IfWinActive
«#IfWinActive» гарантирует, что эти конкретные замены клавиш применяются только тогда, когда заголовок активного окна заканчивается строкой «- Outlook» (конец отмечен знаком доллара, что работает, потому что я включил режим сопоставления строк на основе регулярных выражений выше). Затем я отключаю обнаружение заголовка активного окна с пустым #IfWinActive в конце.
Кроме того, после нажатия #IfWinActive я точно знаю, в какое окно будут поступать ключи, которые я отправляю, поэтому мне не нужно делать ничего особенного, кроме простого «Отправить <ключи>» в ответ на каждое настоящее нажатие клавиши. это должно быть заменено.