我試圖製作一個熱鍵,它將在Windows資源管理器中複製文件,翻轉到我打開的新草稿電子郵件並附加它。我將假設將會有零個或一個新的草稿電子郵件窗口打開。如果有不止一個,我就拿一個,希望它是正確的。這是一個交互式過程。我的麻煩是編寫一個IfWinExist,它可以區分打開的發送電子郵件窗口和打開的新草稿電子郵件窗口。我怎樣才能區分這種差異? 我使用Outlook 2010和AutoHotkey v1.1.12.00使用AutoHokey查找新的電子郵件窗口與發送的電子郵件窗口
感謝您的幫助!
我試圖製作一個熱鍵,它將在Windows資源管理器中複製文件,翻轉到我打開的新草稿電子郵件並附加它。我將假設將會有零個或一個新的草稿電子郵件窗口打開。如果有不止一個,我就拿一個,希望它是正確的。這是一個交互式過程。我的麻煩是編寫一個IfWinExist,它可以區分打開的發送電子郵件窗口和打開的新草稿電子郵件窗口。我怎樣才能區分這種差異? 我使用Outlook 2010和AutoHotkey v1.1.12.00使用AutoHokey查找新的電子郵件窗口與發送的電子郵件窗口
感謝您的幫助!
這裏有一個註釋代碼示例:
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
),窗口間諜會給你這些信息。
這是一個很好的例子。我非常感謝你的幫助。我有點像AHK精靈,但我從未享受過進入控制。我運氣不好。儘管這看起來確實很完美! –
我建議你看看[Outlook的COM接口](http://www.autohotkey.com/board/topic/71335-mickers-outlook-com-ms-for-ahk-l/?p=452198 )。 – MCL
該頁面看起來很有趣。我通常很警惕COM,但是當信息佈置的非常好時,它是誘人的! –