网友(JOR-WoodSun木森 )提问:
各位好,请教一下:我想在Outlook中设置快捷键,自动完成如下操作,可以实现吗?
我想比如快捷键1标添加为今天待办,2添加明天待办,3添加本周待办。我想标记在自己的最新回复邮件上。
方案一、设置按钮的默认动作,鼠标党(缺点:每次都要设置)
方案二、系统自带热键, 键盘流 alt+h u t 之类
方案三、自己动手开发热键插件,程序猿
由于outlook支持com编程,所以用AutoHotkey来实现outlook的二次开发,就是和vba操纵office系列似的,可以用ahk来操控office,下面截图就是用ahk操控excel工具条按钮的例子 :
但直接照搬不行,outlook和excel方式少许不同,在网上找到以下资料:
Office 2010 Help Files: Office Fluent User Interface Control Identifiers
在文档中找到以下关键信息:
下面就研究outlook的CommandBars对象如何调用,在网上找到以下资料:
Application.ActiveWindow 方法 (Outlook)
最终代码很简单,希望能抛砖引玉,希望读者能get更多技能。
【热键】
win+f 标记
win+g 清除标记
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
代码自测可以在新建、回复、以及列表窗口使用