|
楼主 |
发表于 2017-9-6 13:14:51
|
显示全部楼层
本帖最后由 dengpeiyou 于 2017-9-6 13:57 编辑
为了感谢zghwelcome的共享精神,我把我写的源码全部贡献出来
;===================================================
;国家电网河南省OA自动化登录程序
;作者:QQ;185062666 2017.9.3
;===================================================
#include <IE.au3>
#include<array.au3>
#include <MsgBoxConstants.au3>
; 创建IE对象并转到指定网页
Local $oIE = _IECreate("http://oa.yydl.com.cn")
_IEAction($oIE,"visible")
WinActivate("原阳县电业局OA首页 - Windows Internet Explorer","")
WinSetState ( "原阳县电业局OA首页 - Windows Internet Explorer", "http://oa.yydl.com.cn", @SW_MAXIMIZE )
$oForm = _IEFormGetCollection ($oIE, 0)
Local $oName = _IEGetObjById($oIE, "UserName")
If $oName<>0 Then
$oName.value="dengpeiyou"
Local $oPassword = _IEGetObjById($oIE, "UserName")
Local $oPassword= _IEGetObjById($oIE, "Password")
$oPassword.value="******"
_IEFormSubmit ($oForm,0);提交(提交即关闭页面,所以不等待,这个参数0是必须的)
EndIf
;点击<邮件>按钮
Sleep(1000)
$oIE = _IEAttach ("办公自动化系统")
Local $oMenuTable= _IEGetObjById($oIE, "wdMenuTable")
Local $oLinks= _IETagNameGetCollection($oIE, "td")
For $oLink In $oLinks
If StringInStr($oLink.innertext, " 邮 件 ") And StringLen($oLink.innertext)<10 Then;找到<邮件>按钮,点击
Sleep(1000) ;极小的延时(必须)
_IEAction($oLink, "click")
exitloop
EndIf
Next
;点击写邮件按钮
$oFrameA=_IEFrameGetObjByName($oIE,"WebDesignerHomePageIFrame" );处理网页中的一级FRAME.
_IELoadWait($oFrameA)
$oFrameB=_IEFrameGetObjByName($oFrameA,"WebDesignerView" );处理网页中的二级FRAME.
Sleep(1000)
$oLinks = _IELinkGetCollection($oFrameB);获取FRAME中的全部链接。
Local $oLinks= _IETagNameGetCollection($oFrameB, "td")
For $oLink In $oLinks
If StringInStr($oLink.innertext,"写邮件") And StringLen($oLink.innertext)<8 Then;找到邮件按钮,点击
Sleep(1000) ;极小的延时(必须)
_IEAction($oLink, "click")
ExitLoop
EndIf
Next
send("^{TAB}")
Sleep(1000)
$oIE = _IEAttach ("邮件草稿")
Local $oSendTo = _IEGetObjById($oIE, "TempSendTo")
$oSendTo.value="XXXXXX/信通运检班/运维检修部/XXXX县电业局"
Local $oSubject = _IEGetObjById($oIE, "Subject")
$oSubject.value="有违规记录信息"
;按12次Tab键到内容输入
For $i=1 To 12
send("{TAB}")
Sleep(50)
Next
;填写正文内容
send(_ReadFileAll(@DesktopDir & "\test.txt"))
;在弹窗前新建一个命令行AU3线程,一直查找等待弹窗出现
Run(@AutoItExe & ' /AutoIt3ExecuteLine "Dim $s=''提示'',$a=WinWait($s), $a=WinActivate($s), $a=ControlClick($s, '''', ''buttonOK''), $a=WinClose($s), $a=WinWait($s), $a=WinActivate($s), $a=ControlClick($s, '''', ''buttonOK'')"')
;点击<发送>按钮
ControlClick("邮件草稿", "发送","")
;之后弹出的关闭确认窗口被上面的创建的进程成功关闭,上面的进程结束
$oIE.document.parentWindow.execscript("fnSendMail()") ;点击发送
MsgBox(0, "提示", "执行到这了") ;临时设断
;==============================================================================
;获取一个文本文件的全部内容
;==============================================================================
Func _ReadFileAll($FileName)
Local $file = FileOpen($FileName, 0)
If $file = -1 Then
MsgBox(4096, "错误", "不能打开文件.")
Exit
EndIf
Local $lines
$lines=""
While 1
Local $line = FileReadLine($file) ; 每次读取一行文本,直到文件结束.
If @error = -1 Then ExitLoop
$lines=$lines & @CRLF& $line
WEnd
FileClose($file)
Return $lines
EndFunc
;==============================================================================
;获取一个IE对象的全部图片键接
;==============================================================================
Func AllImgsLink(ByRef $oMenuTable)
Local $oImgs = _IEImgGetCollection($oMenuTable)
Local $iNumImg = @extended
Local $sTxt = "这个页面总共有 " & $iNumImg & "个图片链接" & @CRLF & @CRLF
For $oImg In $oImgs
$sTxt &= $oImg.src & @CRLF
Next
MsgBox($MB_SYSTEMMODAL, "图片信息", $sTxt)
EndFunc
Exit
;==============================================================================
;以下为调试过程中产生的代码
;==============================================================================
;MsgBox(0, "提示", "执行到这了") ;临时设断
;MsgBox(0, "提示", _IEPropertyGet ($oIE, "locationurl")) ;用于查看IE对象的当前网址
;MsgBox($MB_SYSTEMMODAL, "提示", _IEPropertyGet($oMenuTable, "innerHTML")) ;显示一个IE对象的HTML源码
;列出桌面可见标题窗口
;Local $aList = WinList("[REGEXPTITLE:(?i)(.*Internet Explorer.*)]")
;_ArrayDisplay($aList)
;执行外部的JS函数(通过两种方式点击一个按钮)
;$oIE.document.parentWindow.execscript("fnMailAddAttachment()") ;在AU3里执行JS代码,调用打开附件函数
;_IEImgClick($oIE, "http://oa.yydl.com.cn/oa/jm.nsf/i.attachfile.gif", "src",0,0) ;测试成功(点击增加附件函数) |
|