繁体   English   中英

使用AutoHokey查找新的电子邮件窗口与已发送的电子邮件窗口

[英]Finding a new email window versus sent email window using AutoHokey

我正在尝试制作一个热键,它将在Windows资源管理器中复制文件,翻转到我打开的新草稿电子邮件中并附加它。 我将假设将打开零个或一个新的电子邮件草稿窗口。 如果有不止一个,我就选一个,希望它是正确的。 这是一个交互式过程。 我的麻烦是编写一个IfWinExist,它可以判断打开的已发送电子邮件窗口和打开的新电子邮件草稿窗口之间的区别。 我该如何区分? 我正在使用Outlook 2010和AutoHotkey v1.1.12.00

谢谢你的帮助!

这是一个注释的代码示例:

SetTitleMatchMode, 2

/* Choose the window title acoording to your language:
*  English: Message
*  German:  Nachricht
*  ...
*/
msgWin := "- Message ahk_exe outlook.exe"
WinGet, hwndList, List, %msgWin%
Loop % hwndList
{
    aHwnd := hwndList%A_Index%
    WinGetTitle, ttl, % "ahk_id " aHwnd
    ControlGetText, btnText, Button1, ahk_id %aHwnd%
    /* If you want to be sure, check for the text of the send button: 
    *  English: &Send, German: &Senden, ...
    */
    if(!btnText || !InStr(btnText, "Send")) {
        MsgBox, Not a draft window:`n%ttl%
    } else {
        MsgBox, Draft window:`n%ttl%
    }
}

基本上,它会检查每个打开的“ 消息”窗口,如果其中有一个“ 发送”按钮(对我来说是Button1 )。 如果没有这样的按钮,那不是草稿。
如代码注释中所述,您必须调整依赖于语言的标识符。 您可能还需要更改控件名称( Button1 ),窗口间谍会为您提供该信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM