【发布时间】:2015-05-18 15:35:07
【问题描述】:
我是 AutoHotKey 的新手,我认为它是一个很棒的快捷键工具。
当我使用热键使用 Outlook 创建新会议时,我想创建一个宏快捷方式,该快捷方式会将收件人电子邮件地址预填充给几个人,并将主题和位置设置为我想要的。
任何帮助将不胜感激。
谢谢 基申
【问题讨论】:
标签: macros autohotkey
我是 AutoHotKey 的新手,我认为它是一个很棒的快捷键工具。
当我使用热键使用 Outlook 创建新会议时,我想创建一个宏快捷方式,该快捷方式会将收件人电子邮件地址预填充给几个人,并将主题和位置设置为我想要的。
任何帮助将不胜感激。
谢谢 基申
【问题讨论】:
标签: macros autohotkey
它不是特别健壮或优雅,但下面的代码在我的机器上运行良好。在没有其他用于测试的 Outlook 窗口的情况下,让 Outlook 在收件箱中运行。按“window + u”将首先查找近似的窗口匹配(您也可以使用 ahk_class)并发送击键来模拟创建新会议。如果您尚未使用 Outlook 2016,则需要将“Outlook 预览”更改为其他内容。
编辑:根据 ahkcoder 的建议,我尝试了 COM 对象方法,并且能够让它为会议请求工作。这适用于 Outlook 2016。保持 Outlook 打开并点击“windows + y”以使用 COM 解决方案发出新的会议请求。在这里,COM 的屏幕更新较少,并且从长远来看似乎更可靠/更强大。在生产环境中使用它会让我感觉更舒服。
#u::
Settitlematchmode, 2
Winactivate, Outlook Preview
WinWaitActive, Outlook Preview
Sleep 60
SendInput {altdown}h
Sleep 60
SendInput i
Sleep 60
SendInput e
Sleep 60
SendInput {altup}
Sleep 60
Winactivate, Untitled - Meeting
WinWaitActive, Untitled - Meeting
Sleep 60
SendInput myemailaddress@outlook.com;someotheremail@outlook.com
Sleep 60
SendInput {space 2}
Sleep 60
SendInput {tab}
Sleep 60
SendInput mysubject
Sleep 60
SendInput {tab}
Sleep 60
SendInput mylocation
return
#y::
app := ComObjActive("Outlook.Application")
olAppointmentItem := 1 ;1 is the olItemType Enumeration for Appointment
olMeeting := 1 ; olMeeting is an appointment so initialize to 1 here also.
MailItem := app.CreateItem(olAppointmentItem)
MailItem.MeetingStatus := olMeeting
MailItem.Subject := "mysubject"
MailItem.Recipients.Add("firstemail@gmail.com")
MailItem.Recipients.Add("secondemail@gmail.com")
MailItem.Location := "mylocation"
MailItem.Display
return
【讨论】:
欢迎来到使用 AutoHotkey 轻松实现 Windows 自动化的美妙世界!您当然可以通过像 Coldrainwater 发布的那样简单、直接的脚本来完成很多任务。
但只要知道 AutoHotkey 多年来实现了一些高级功能,其中最值得注意的是 COM 对象、DLL 函数调用、面向对象编程。
当您阅读了帮助文件并复习了基础知识后,也许您会考虑在此处使用 Outlook COM 对象参考:
http://www.autohotkey.com/board/topic/71335-mickers-outlook-com-msdn-for-ahk-l/
祝你好运!
【讨论】: