Подскажите, пожалуйста, как сделать, чтобы авторизация и последующие действия производились в одном окне.
Код:
#Include <Clipboard.au3>
#include <IE.au3>
HotKeySet('{Esc}', '_Exit')
;$flag_0 = StringInStr(ClipGet(), "а") ? 1 : 0
While 1
$flag_0 = StringInStr(ClipGet(), "а") ? 1 : 0
If $flag_0 Then _test_func()
sleep(100)
WEnd
Func _test_func()
Local $oIE, $oForm, $oQuery, $sUrl , $sLogin = 'Anna', $sPass = '333444'
$flag = StringInStr(ClipGet(), "Любовь") ? 1 : 0
$flag2 = StringInStr(ClipGet(), "Здание") ? 1 : 0
;select url
If $flag Then
$sUrl = 'http://ruforum.mt5.com/threads/3101-a-kto-nibud-pishet-stihi'
ElseIf $flag2 Then
$sUrl = 'http://ruforum.mt5.com/threads/56867-prodayu-to-ne-znayu-chto'
EndIf
;start_autorisation
$oIE = _IECreate($sUrl)
$oForm = _IEFormGetCollection($oIE, 0)
$oQuery = _IEFormElementGetCollection($oForm, 2)
If IsObj($oQuery) Then ; Это на случай, если уже авторизованы
_IEFormElementSetValue($oQuery, $sPass)
_IEFormElementSetValue(_IEFormElementGetCollection($oForm, 1), $sLogin)
_IEFormSubmit($oForm)
; _IENavigate($oIE, $sUrl)
sleep(3000)
EndIf
;postim
$oIE = _IECreate($sUrl, 1) ; Пытаться присоединиться к существующему окну
$oForm = _IEFormGetObjByName($oIE, 'quick_reply')
If Not IsObj($oForm) Then Exit MsgBox(4096+16, 'Ошибка!', 'Форма для быстрого ответа не обнаружено.' &@CRLF& 'Зарегистрируйтесь и повторите попытку.')
$oQuery = _IEFormElementGetObjByName($oForm, 'message')
_IEFormElementSetValue($oQuery, ClipGet())
_IEFormSubmit($oForm)
ClipPut('')
(@error) ? MsgBox(4096+16, 'Ошибка!', 'Не удалось отправить форму.') : MsgBox(4096+64, 'Отчет:', 'Форма отправлена.')
EndFunc