从腾讯企业邮箱下载邮件的脚本

因为摊上了腾讯的这档子事儿,FFFFFFK,被迫的重操旧业拿起了autoit这个自动化工具,还是头一次进行比较复杂的浏览器操作,其中获取frame元素琢磨了一些时间。脚本贴在下面,供参考并不负责:

;
; AutoIt Version: 3.0
; Language:       English
; Platform:       Win9x/NT
; Author:         Jonathan Bennett (jon at autoitscript dot com)
;
; Script Function:
;   Demo of using multiple lines in a message box
;

; Use the @CRLF macro to create a newline in a MsgBox - it is similar to the \n in v2.64
; MsgBox($MB_SYSTEMMODAL, "AutoIt Example", "This is line 1" & @CRLF & "This is line 2" & @CRLF & "This is line 3")


#include <Constants.au3>
#include<IE.au3>
#include <MsgBoxConstants.au3>


;open the exmail.qq page
Global $oIE = _IECreate("http://exmail.qq.com")
;js($oIE,FileRead("jquery-1.7.min.js"))
_IEPropertySet ($oIE, "left",0)
_IEPropertySet ($oIE, "top",0)
_IEPropertySet ($oIE, "height",@DesktopHeight-30)
_IEPropertySet ($oIE, "width",@DesktopWidth)
Sleep(3000)


Send("!s")
sleep(5000)

;click to close the dialog
$ieObj = _IEGetObjById($oIE, "dlg_mxchange_QMDialog__closebtn_")
_IEAction($ieObj, "Click")
Sleep(2000)

;click inbox
MouseClick($MOUSE_CLICK_LEFT, 79, 253)
Sleep(2000)

;click jump
MouseClick($MOUSE_CLICK_LEFT, 1312, 178)
sleep(2000)

;jump to page 76
$xi = 77
send($xi & "{ENTER}")
sleep(2000)

;for $xi = 1 to 39 Step 1
;点击下一页,到达上次中断的页
;MouseClick($MOUSE_CLICK_LEFT, 1272, 178)
;sleep(2000)
;Next


For $i = 1 to 40 step 1


;click first mail in this page
MouseClick($MOUSE_CLICK_LEFT, 285, 260)
sleep(2000)

   For $j = 1 to 25 step 1
;取得“显示更多”图标的上级frame及自身的 id
Local $oFrame = _IEFrameGetObjByName($oIE, "mainFrame")
$ieObj = _IEGetObjById($oFrame, "display_more_operator")

;获得“显示更多”的屏幕坐标
Local $iX = _IEPropertyGet($ieObj, "screenx")
Local $iY = _IEPropertyGet($ieObj, "screeny")

;计算获得“保存为eml”的坐标
Local $iX2 = $iX - 885
Local $iY2 = $iY + 55

;多按一次alt+s
Send("!s")
sleep(1000)

;点击“显示更多图标”
MouseClick($MOUSE_CLICK_LEFT, $iX, $iY)
sleep(1000)


;点击“保存为eml”
MouseClick($MOUSE_CLICK_LEFT, $iX2, $iY2)
sleep(3000)

;输出alt+s保存文件
Send("!s")
sleep(8000)



;点击滚动到下条
;MouseClick($MOUSE_CLICK_LEFT, 1350, 710,2)
;sleep(3000)

;click next mail
MouseClick($MOUSE_CLICK_LEFT, 1318, 150)
sleep(2000)
   Next

;click back to the list
;这里有bug,返回不是到邮件列表而是到上一页了
;MouseClick($MOUSE_CLICK_LEFT, 245, 150)
;sleep(2000)


;click inbox
MouseClick($MOUSE_CLICK_LEFT, 79, 253)
Sleep(2000)

;click jump
MouseClick($MOUSE_CLICK_LEFT, 1312, 178)
sleep(2000)

$xi = $xi + 1
;for $xj = 1 to $xi Step 1
;点击下一页
;MouseClick($MOUSE_CLICK_LEFT, 1272, 178)
;next
;jump to page 76
send($xi & "{ENTER}")
sleep(2000)


Next

滚动至顶部