#include <IE.au3>
#Include <File.au3>
#include <INet.au3>
#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 617, 800, 192, 114)
$oIE = ObjCreate("Shell.Explorer.2")
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 615, 760)
$Button1 = GUICtrlCreateButton("Отправить", 360, 768, 75, 25, 0, $BS_DEFPUSHBUTTON)
$Input1 = GUICtrlCreateInput("", 225, 770, 121, 21)
GUISetState(@SW_SHOW)
_IENavigate($oIE,"http://wmmail.ru/index.php?cf=reg-newr")
If @error Then Exit
_IELoadWait ($oIE)
If @error Then Exit
$oForm = _IEFormGetCollection ($oIE, 1)
$oCap = _IEFormElementGetObjByName($oForm,"pnum")
ControlClick("Form1", "", 5)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Cap=GUICtrlRead(5)
_IEFormElementSetValue($oCap, $Cap)
EndSwitch
WEnd
Next
Почему так? При загрузке страницы, она переносится на клиентскую машину в любом случае... Или таи java какая-нибудь? Вот вы открыли страницу, вот появилась капча, вот вы сохранили страницу - капча поменялась? Мне этот вопрос интересен потому, что создатели сайта в Контакте, постоянно выводят капчу при приглашении кого-то на встречу, приходиться вручную фигачить... Вот поэтому и спрашиваю...coldmine сказал(а):страница то сохраняется и капча вместе с ней, да только капча не та что надо, а уже совсем другая, так что этот вариант не пройдет, остается вариант с редактированием снимка экрана, буду пробовать
#include <IE.au3>
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
Opt('MustDeclareVars', 1)
Global $sURL, $oIE, $oImgs
$oIE = _IECreate("http://www.safonbux-msk.ru/loginn.php?r=", 0, 0)
$oImgs = _IEImgGetCollection($oIE)
For $oImg In $oImgs
If StringInStr($oImg.src, "image.php?") Then
$sURL = $oImg.src
ExitLoop
EndIf
Next
If InetGet($sURL, "c:\Captcha.gif", 1) Then MsgBox(64, "Message", "Image downloading successful")
_Main()
Func _Main()
Local $hGUI1, $hImage, $hGraphic1
$hGUI1 = GUICreate("Zoomed", 130, 50, 500, 300)
GUISetState()
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("c:\Captcha.gif")
$hGraphic1 = _GDIPlus_GraphicsCreateFromHWND($hGUI1)
_GDIPlus_GraphicsDrawImageRectRect($hGraphic1, $hImage, 0, 0, 400, 400, 1, 1, 400, 300)
_GDIPlus_GraphicsDispose($hGraphic1)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
_IEQuit($oIE)
Подскажите пожалуйста, почему этот кусок кода не подходит? :wacko:Garrett сказал(а):Где-то так:
Код:#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <IE.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 217, 140, 192, 114) $oIE = ObjCreate("Shell.Explorer.2") $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 215, 100) $Button1 = GUICtrlCreateButton("Отправить", 132, 108, 75, 25, 0) $Input1 = GUICtrlCreateInput("", 6, 110, 121, 21) GUISetState(@SW_HIDE) #EndRegion ### END Koda GUI section ### TrayTip("Внимание!","Загружаемся...",1) _IENavigate($oIE,"http://wmmail.ru/index.php?cf=reg-newr") If @error Then Exit _IELoadWait ($oIE) If @error Then Exit $oForm = _IEFormGetObjByName ($oIE, "reg") $oInputs = _IETagNameGetCollection ($oForm, "img") For $oInput In $oInputs $sCapcha = $oInput.src Next _IENavigate($oIE,$sCapcha) _IELoadWait ($oIE) If @error Then Exit TrayTip("","",1) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $nMsg = $Button1 ;~ .... EndSwitch WEnd
По сравнению с тем что я выше приводил или что?Подскажите пожалуйста, почему этот кусок кода не подходит?
думаю решена.Как мне получить капчу с этой страницы на свое окно посредством автоит-скрипта?
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <GDIPlus.au3>
Global $oForm
_GDIPlus_Startup ()
;~ START GUI
$Form1 = GUICreate("WMmail.ru", 273, 225, 192, 114)
$InputPnum = GUICtrlCreateInput("", 126, 190, 61, 21)
$BottonSend = GUICtrlCreateButton("Отправить", 192, 190, 75, 21, 0)
$oIE = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($oIE, 6, 6, 260, 167)
GUISetState(@SW_SHOW)
;~ END GUI
TrayTip("Внимание!","Загружаемся...",1)
_IENavigate($oIE,"http://wmmail.ru/index.php?cf=reg-newr")
_LoadCaptcha()
TrayTip("","",1)
While 1
$nMsg = GUIGetMsg()
_ShowCaptcha()
Select
Case $nMsg = $GUI_EVENT_CLOSE
_GDIPlus_ShutDown ()
Exit
Case $nMsg = $BottonSend
_Submit()
EndSelect
WEnd
Func _LoadCaptcha() ; Загружаем и сохраняем картинку
$oForm = _IEFormGetObjByName ($oIE, "reg")
$oInputs = _IETagNameGetCollection ($oForm, "img")
$oFocus = _IEFormElementGetObjByName($oForm, "nwlogin")
_IEAction($oFocus,"Focus")
For $oInput In $oInputs
$oInput.src
Next
InetGet($oInput.src, @ScriptDir &"\captcha.bmp",1)
_ShowCaptcha()
EndFunc
Func _ShowCaptcha() ; Показываем картинку в GUI
$hBitmap = _GDIPlus_BitmapCreateFromFile (@ScriptDir & "\captcha.bmp")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($Form1)
_GDIPlus_GraphicsDrawImage ($hGraphic, $hBitmap, 6, 180)
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_BitmapDispose ($hBitmap)
Sleep(20)
EndFunc
Func _Submit() ; Отправляем данные
Local $sNW_login, $sNW_pass, $sNW_pass1, $sNW_email, _
$sNW_wmi, $sNW_wmz, $sNW_ref, $sNW_chk, $sNW_pnum
$sNW_login = _IEFormElementGetObjByName($oForm, "nwlogin") ; Логин
_IEFormElementSetValue($sNW_login, "Tim")
$sNW_pass = _IEFormElementGetObjByName($oForm, "nwpass") ; Пароль
_IEFormElementSetValue($sNW_pass, "1234567")
$sNW_pass1 = _IEFormElementGetObjByName($oForm, "nwpass1") ; Повтор пароля
_IEFormElementSetValue($sNW_pass1, "1234567")
$sNW_email = _IEFormElementGetObjByName($oForm, "nwemail") ; Почта
_IEFormElementSetValue($sNW_email, "[email protected]")
$sNW_wmi = _IEFormElementGetObjByName($oForm, "nwwmi") ; WMI
_IEFormElementSetValue($sNW_wmi, "")
$sNW_wmz = _IEFormElementGetObjByName($oForm, "nwwmz") ; WMZ
_IEFormElementSetValue($sNW_wmz, "")
$sNW_ref = _IEFormElementGetObjByName($oForm, "nwref") ; Referrer
_IEFormElementSetValue($sNW_ref, "")
$sNW_chk = _IEFormElementGetObjByName($oForm, "nwchk") ; Правила
_IEFormElementSetValue($sNW_chk, "1")
$sNW_pnum = _IEFormElementGetObjByName($oForm, "pnum") ; Число с картинки
_IEFormElementSetValue($sNW_pnum, GUICtrlRead($InputPnum))
_IEFormSubmit($oForm)
_IELoadWait ($oIE)
_Start()
EndFunc
$oForm = _IEFormGetObjByName ($oIE, "reg")
$oInputs = _IETagNameGetCollection ($oForm, "img")
$oFocus = _IEFormElementGetObjByName($oForm, "nwlogin")
_IEAction($oFocus,"Focus")
For $oInput In $oInputs
$oInput.src
Next
InetGet($oInput.src, @ScriptDir &"\captcha.bmp",1)
_ShowCaptcha()
$oFocus = _IEFormElementGetObjByName($oForm, "nwlogin")
_IEAction($oFocus,"Focus")