#include <IE.au3>
$oIE = _IECreate("http://www.server.com",0,1,1)
$oForm = _IEFormGetObjByName($oIE,"form_login")
$oServer = _IEFormElementGetObjByName($oForm,"server")
$oLogin = _IEFormElementGetObjByName($oForm,"USR")
$oPass = _IEFormElementGetObjByName($oForm,"dummy")
_IEFormElementSetValue($oServer,"server2")
_IEFormElementSetValue($oLogin,"im_bot")
_IEFormElementSetValue($oPass,"password")
_IEFormSubmit($oForm,1)
спасибо,просто в хелпе эти функции на англ, я англ не изучалEl Panda сказал(а):Лень читать хелп или написать 10 строк кода? :blink:
Кури все функции _IE, там все придельно просто и ясно!
Где
form_login - имя формы
server - инпут для выбора сервера
USR - инпут для ввода логина
dummy - инпут для ввода пароля
<!-- login form -->
<form action="login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">
<script type="text/javascript" src="clientscript/vbulletin_md5.js?v=372"></script>
<table cellpadding="0" cellspacing="3" border="0" style="margin-top:10px;">
<tr>
<td class="smallfont"><label for="navbar_username">Имя</label></td>
<td><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" value="Имя" onfocus="if (this.value == 'Имя') this.value = '';" /></td>
<td class="smallfont" colspan="2" nowrap="nowrap"><label for="cb_cookieuser_navbar"><input type="checkbox" name="cookieuser" value="1" tabindex="103" id="cb_cookieuser_navbar" accesskey="c" />Запомнить?</label></td>
</tr>
<tr>
<td class="smallfont"><label for="navbar_password">Пароль</label></td>
<td><input type="password" class="bginput" style="font-size: 11px" name="vb_login_password" id="navbar_password" size="10" tabindex="102" /></td>
<td><input type="submit" class="button" value="Вход" tabindex="104" title="Введите ваше имя пользователя и пароль, чтобы войти, или нажмите кнопку 'Регистрация', чтобы зарегистрироваться." accesskey="s" /></td>
</tr>
</table>
<input type="hidden" name="s" value="" />
<input type="hidden" name="securitytoken" value="guest" />
<input type="hidden" name="do" value="login" />
<input type="hidden" name="vb_login_md5password" />
<input type="hidden" name="vb_login_md5password_utf" />
</form>
<!-- / login form -->
El Panda , спасибо за пример скрипта..
хотел попробовать , но так и не нашел в коде хтмл имя формы и инпуты для логина и пароля.
вот код страницы , где нужно вводить это все
Вход в любом случае через форму, но по экшену можно определить нужную форму (как вариант).значит вход не через форму а через action?
находит 4 формы и их имена -0 .
Александр сказал(а):не понял о цикле. как можно присвоить значение если нет формы?
#include <IE.au3>
$oIE = _IECreate ("http://www.autoit-script.ru")
$oForms = _IEFormGetCollection ($oIE)
MsgBox(0, "Forms Info", "There are " & @extended & " forms on this page")
For $oForm In $oForms
MsgBox(0, "Form Info", $oForm.name&@CRLF&$oForm.action)
Next
#include <IE.au3>
$oIE = _IECreate("http://autoit-script.ru",0,1,1)
$oForm = _IEFormGetObjByName($oIE,"http://autoit-script.ru/index.php?action=login2")
$oLogin = _IEFormElementGetObjByName($oForm,"user")
$oPass = _IEFormElementGetObjByName($oForm,"passwrd")
_IEFormElementSetValue($oLogin,"логин")
_IEFormElementSetValue($oPass,"пароль")
_IEFormSubmit($oForm)
Если внимательно посмотреть то на странице действительно две формы логина и две формы поиска но они разные (в разных местах)точно четыре. только одно и то же по два раза:
#include <IE.au3>
$oIE = _IECreate ("http://www.autoit-script.ru/")
$oForms = _IEFormGetCollection ($oIE)
$n=0
For $oForm In $oForms
MsgBox(0, "Form "&$n&" Info", $oForm.name&@CRLF&$oForm.action)
$n+=1
Next
$oForm = _IEFormGetCollection($oIE,0)
$oLogin = _IEFormElementGetObjByName($oForm,"user")
$oPass = _IEFormElementGetObjByName($oForm,"passwrd")
_IEFormElementSetValue($oLogin,"форма0")
_IEFormElementSetValue($oPass,"пароль")
$oForm = _IEFormGetCollection($oIE,2)
$oLogin = _IEFormElementGetObjByName($oForm,"user")
$oPass = _IEFormElementGetObjByName($oForm,"passwrd")
_IEFormElementSetValue($oLogin,"форма2")
_IEFormElementSetValue($oPass,"пароль")
$oForm = _IEFormGetCollection($oIE,0)
#include <IE.au3>
$oIE = _IECreate ("http://",0,0)
$oForm = _IEFormGetCollection($oIE,1)
$oLogin = _IEFormElementGetObjByName($oForm,"login name")
$oPass = _IEFormElementGetObjByName($oForm,"login password")
_IEFormElementSetValue($oLogin,"имя")
_IEFormElementSetValue($oPass,"пароль")
_IEFormSubmit($oForm)
$oForm1 = _IEFormGetCollection($oIE,3)
$otext = _IEFormElementGetObjByName($oForm1,"message")
_IEFormElementSetValue($otext,"сообщение")
_IEFormSubmit ($oForm1)
но когда срабатывает первая часть кода, то вторая работает в момент переадресации и происходит ошибка.
задумка такая : создать сообщение у себя на компе, а потом отправить его на сайт или форум и чтобы это было без загрузки страницы IE.
#include <IE.au3>
$oIE = _IECreate ("адрес вебстраницы")
$oForm = _IEFormGetCollection($oIE, "номер формы")
$oLogin = _IEFormElementGetObjByName($oForm,"input_name")
$oPass = _IEFormElementGetObjByName($oForm,"input_password")
_IEFormElementSetValue($oLogin,"имя")
_IEFormElementSetValue($oPass,"пароль")
_IEFormSubmit($oForm,1)
_IELoadWait($oIE,10000)
$oMessage = _IEFormGetCollection($oIE,"номер формы")
$oText = _IEFormElementGetObjByName($oMessage,"input_формы")
_IEFormElementSetValue($oText,"сообщение")
_IEFormSubmit($oMessage,1)
_IEQuit($oIE)
WinHTTP это простой в использовнии HTTP клиент на основе стандартной библиотеки Windows, WinInet, позволяющий получать и отправлять данные серверным web-программам по HTTP протоколу. С помощью WinHTTP вы можете загружать web-страницы, загружать файлы и документы, получать результаты CGI-скриптов (напр. для получения результатов поисковиков или баз данных), отправлять (постить) данные в CGI (Perl/PHP/ASP и т.д.) скрипты, или даже "закачивать" файлы по HTTP(S)-протоколу.
При необходимости, компонент может работать также и в локальном интранете, для этого нужно лишь указать FILE:// префикс, вместо HTTP:// (или HTTPS://).
WinHTTP может получать данные и в бинарном и текстовом формате, поддерживет кэш Internet Explorer'а, может возобновлять прерванные даунлоады, читать данные из директорий защищённых паролем, автоматически поддерживает несколько схем прокси-аутентификаций (напр. Basic, Digest, NTLM и др.)
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", "линк_гет_запроса")
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("Accept", "*/*")
$oHTTP.SetRequestHeader("Accept-Language", "ru")
$oHTTP.SetRequestHeader("Referer","линк_рефера")
$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)")
$oHTTP.SetRequestHeader("Host","хост")
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.Send("")
$oHTTP.WaitForResponse
If @error Then
Return 0
EndIf
$resp= $oHTTP.Responsetext