- Сообщения
- 33
- Репутация
- 3
Как войти на сайт при заполнение всех полей HTML через GUI и ввод капч
Вот в этой скрипт всё работает прямой через Internet explore (скачивает капчу на диск) но через Embded неработает
ЗАРАНЕЕ СПАСИБО ТОТ КТО ПОМОЖЕТ !!! :beer:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <GDIPlus.au3>
#include <Clipboard.au3>
Local $oIE = _IECreateEmbedded()
GUICreate("Embedded Web control Test", 800, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 10, 40, 600, 360)
$I_Login = GUICtrlCreateInput("Логин", 620, 40, 150, 20)
$I_Password = GUICtrlCreateInput("Пароль", 620, 70, 150, 20)
$B_Submit = GUICtrlCreateButton("Log In", 620, 100, 150, 20)
$I_Captcha = GUICtrlCreateInput("Капча", 620, 130, 150, 20)
;~ $Captcha = GUICtrlCreatePic("", 620, 160)
;~ GUICtrlSetBkColor(-1, 0xffffff)
GUISetState(@SW_SHOW) ;Show GUI
_IENavigate($oIE, "http://richrancho.net")
$oImgs = _IEImgGetCollection($oIE)
For $oImg In $oImgs
If StringInStr($oImg.src, "code.php") Then
$oCtlRange = $oImg.document.body.createControlRange()
$oCtlRange.addElement($oImg)
$oCtlRange.select($oImg)
$oCtlRange.execCommand('Copy')
_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
_ClipBoard_Close()
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_GDIPlus_ImageSaveToFile($hImage, @ScriptDir & "\" & "captcha.jpg")
_GDIPlus_BitmapDispose($hImage)
_GDIPlus_Shutdown()
EndIf
Next
; Тут надо показать капчу на GUI
While 1
Local $iMsg = GUIGetMsg()
Select
Case $iMsg = $GUI_EVENT_CLOSE
ExitLoop
Case $iMsg = $B_Submit
$oLogin = _IEGetObjById($oIE, 'inputloginnew')
$oPass = _IEGetObjById($oIE, 'inputpassnew')
$oCaptcha = _IEGetObjById($oIE, 'codnew')
_IEFormElementSetValue($oLogin, GUICtrlRead($I_Login))
_IEFormElementSetValue($oPass, GUICtrlRead($I_Password))
_IEFormElementSetValue($oCaptcha, GUICtrlRead($I_Captcha))
; Здесь команда показать в GUI окно
EndSelect
WEnd
GUIDelete()
Exit
Вот в этой скрипт всё работает прямой через Internet explore (скачивает капчу на диск) но через Embded неработает
Код:
#include <IE.au3>
#include <GDIPlus.au3>
#include <Clipboard.au3>
; Пример 2 - Открывает страницу AutoIt, получает коллекцию Img
; и для каждого отображает src URL
$oIE = _IECreate("http://richrancho.net/")
$oImgs = _IEImgGetCollection($oIE)
For $oImg In $oImgs
If StringInStr($oImg.src, "code.php") Then
$oCtlRange = $oImg.document.body.createControlRange()
$oCtlRange.addElement($oImg)
$oCtlRange.execCommand('Copy', False)
_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
_ClipBoard_Close()
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_GDIPlus_ImageSaveToFile($hImage, @ScriptDir & "\" & "captcha.jpg")
_GDIPlus_BitmapDispose($hImage)
_GDIPlus_Shutdown()
EndIf
Next
MsgBox(64,'','Выход ?')
ЗАРАНЕЕ СПАСИБО ТОТ КТО ПОМОЖЕТ !!! :beer: