网友(JOR-WoodSun木森 )提问:
各位好,请教一下:我想在Outlook中设置快捷键,自动完成如下操作,可以实现吗?
我想比如快捷键1标添加为今天待办,2添加明天待办,3添加本周待办。我想标记在自己的最新回复邮件上。
![[AHK]给Outlook的工具条上的功能单独设置快捷键_Office](https://file.cfanz.cn/uploads/png/2023/04/24/2/d7eb6c5763.png)
方案一、设置按钮的默认动作,鼠标党(缺点:每次都要设置)
![[AHK]给Outlook的工具条上的功能单独设置快捷键_Outlook_02](https://file.cfanz.cn/uploads/jpeg/2023/04/24/2/d1b8KeeB1f.jpeg)
![[AHK]给Outlook的工具条上的功能单独设置快捷键_热键_03](https://file.cfanz.cn/uploads/png/2023/04/24/2/17J2ZKaD20.png)
方案二、系统自带热键, 键盘流 alt+h u t 之类
 
  
![[AHK]给Outlook的工具条上的功能单独设置快捷键_Outlook_04](https://file.cfanz.cn/uploads/png/2023/04/24/2/76feB904B5.png)
 
方案三、自己动手开发热键插件,程序猿
由于outlook支持com编程,所以用AutoHotkey来实现outlook的二次开发,就是和vba操纵office系列似的,可以用ahk来操控office,下面截图就是用ahk操控excel工具条按钮的例子 :
![[AHK]给Outlook的工具条上的功能单独设置快捷键_Office_05](https://file.cfanz.cn/uploads/png/2023/04/24/2/8247fHY7XZ.png)
但直接照搬不行,outlook和excel方式少许不同,在网上找到以下资料:
Office 2010 Help Files: Office Fluent User Interface Control Identifiers
在文档中找到以下关键信息:
![[AHK]给Outlook的工具条上的功能单独设置快捷键_热键_06](https://file.cfanz.cn/uploads/png/2023/04/24/2/8I1dEEf8D4.png)
下面就研究outlook的CommandBars对象如何调用,在网上找到以下资料:
Application.ActiveWindow 方法 (Outlook)
最终代码很简单,希望能抛砖引玉,希望读者能get更多技能。
【热键】
 
  win+f  标记 
 
 win+g 清除标记  
 
#SingleInstance,force
#f::
ox:=ComObjActive("Outlook.Application")
;~ ox.Application.ActiveExplorer().CommandBars.ExecuteMso("FlagToday") ;这样不能在回复邮件时起作用
ox.Application.ActiveWindow().CommandBars.ExecuteMso("FlagToday")
return
#g::
ox:=ComObjActive("Outlook.Application")
ox.Application.ActiveWindow().CommandBars.ExecuteMso("ClearFlag")
return代码自测可以在新建、回复、以及列表窗口使用
 
 
 










