สำหรับฉันคำตอบข้างต้นทั้งหมดเป็นที่น่าพอใจเพราะพวกเขา จำกัด ชุดค่าผสมที่ฉันสามารถใช้เป็นทางลัดที่กำหนดเองหรือการกระทำที่ฉันสามารถกำหนดเป้าหมายได้หรือพวกเขาต้องการวิธีการทำงานที่มากเกินไปสำหรับสิ่งที่ควรเรียบง่าย
โซลูชันของฉันคือใช้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 ฉันรู้ว่าหน้าต่างใดที่จะได้รับคีย์ที่ฉันส่งฉันจึงไม่ต้องทำอะไรเป็นพิเศษนอกเหนือจาก "Send <keys>" แบบธรรมดาเพื่อตอบสนองการกดปุ่มแต่ละปุ่มจริง ที่จะถูกแทนที่