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