2013-09-26 37 views
0

我試圖製作一個熱鍵,它將在Windows資源管理器中複製文件,翻轉到我打開的新草稿電子郵件並附加它。我將假設將會有零個或一個新的草稿電子郵件窗口打開。如果有不止一個,我就拿一個,希望它是正確的。這是一個交互式過程。我的麻煩是編寫一個IfWinExist,它可以區分打開的發送電子郵件窗口和打開的新草稿電子郵件窗口。我怎樣才能區分這種差異? 我使用Outlook 2010和AutoHotkey v1.1.12.00使用AutoHokey查找新的電子郵件窗口與發送的電子郵件窗口

感謝您的幫助!

+0

我建議你看看[Outlook的COM接口](http://www.autohotkey.com/board/topic/71335-mickers-outlook-com-ms-for-ahk-l/?p=452198 )。 – MCL

+0

該頁面看起來很有趣。我通常很警惕COM,但是當信息佈置的非常好時,它是誘人的! –

回答

2

這裏有一個註釋代碼示例:

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),窗口間諜會給你這些信息。

+0

這是一個很好的例子。我非常感謝你的幫助。我有點像AHK精靈,但我從未享受過進入控制。我運氣不好。儘管這看起來確實很完美! –

相關問題