Что нового

Autoit-скрипт на IE

rufik

Новичок
Сообщения
33
Репутация
4
Здравствуйте. Я первый день на форуме, поэтому если такая тема была, заранее извиняюсь. Я чайник в autoit. Хотя нет, пару сценариев знаю. У меня несколько вопросов.
1. Могу ли я сам научиться скрипту на autoit? (то есть без всяких педагогов)
2. Мне надо усвоить только скрипт на IE, больше ничего не надо, так как это не моя специальность.
Хочу научиться делать скрипт по ссылкам. Например качаться музыку по ссылкам через IE, делать боты к разным онлайн играм и т.д. 5 часов уже на гугле вишу, ни одной книги не нашел. Поэтому решил открыть эту тему.. Вроде hnml сам научился по самоучителю. Неужели нет ни одного самоучителя по autoit-у? Если есть, можете кинуть ссылку на них? :(
___
Заранее всем кто поможет благодарен.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: Помогите со скриптом на IE

rufik [?]
1. Могу ли я сам научиться скрипту на autoit? (то есть без всяких педагогов)
Да, при условии, что есть желание!
Однако дельный совет знающего человека не кому ещё не вредил! ;)

2. Мне надо усвоить только скрипт на IE, больше ничего не надо, так как это не моя специальность.
Ну, так, а в чём дело?! Однако нужно учесть то, что с растущими запросами, в дальнейшем одной UDF IE.au3 не обойтись!
Неужели нет ни одного самоучителя по autoit-у?
Как такового нет. Есть документация.
 
Автор
R

rufik

Новичок
Сообщения
33
Репутация
4
Re: Помогите со скриптом на IE

Например, для начало что мне изучить и где? Есть пару знакомых, будущие програмисты, они говорят эту прогу не знают и что на с++ делают скрипты.
Тут читаю форум, все какие то вопросы задают, понимаю начало, как инклуд ие, и в середине кое-какие мелочи, и больше ничего. С чего мне сейчас начать? Какие есть документации и где их можно найти?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: Помогите со скриптом на IE

rufik [?]
С чего мне сейчас начать? Какие есть документации и где их можно найти?
В архиве с Autoit идёт английская справка, а вот тут русифицированная справка.
И на конец, как тут, так и на официальном, форуме, вы сможете многое для себя почерпнуть.
Задавайте вопросы и вникайте в ответы!
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Помогите со скриптом на IE

rufik
{TopicNameWarn.Admin}
 
Автор
R

rufik

Новичок
Сообщения
33
Репутация
4
Re: Autoit скрипт на IE

почему при запуске IE пишется #include <IE.au3>, а при запуске блокнота run("notepad.exe") ? Почему IE с раном не запускают?
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Re: Autoit скрипт на IE

Инклудят библиотеку IE, чтобы не заморачиваться с хэндлами на окно IE.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Re: Autoit скрипт на IE

rufik [?]
почему при запуске IE пишется #include <IE.au3>
#include <IE.au3>, это не запуск программы, а библиотека для работы с ним. Т.е. если ты откроешь IE.au3, ты увидишь код для вызова IE, его функций и т.п.

P.S. Переименуйте тему, иначе она будет закрыта.
 
Автор
R

rufik

Новичок
Сообщения
33
Репутация
4
Re: Autoit скрипт на IE

Medic84 сказал(а):
rufik [?]
почему при запуске IE пишется #include <IE.au3>
#include <IE.au3>, это не запуск программы, а библиотека для работы с ним. Т.е. если ты откроешь IE.au3, ты увидишь код для вызова IE, его функций и т.п.

P.S. Переименуйте тему, иначе она будет закрыта.

А что поставить? Написал название темы. На большее фантазии не хватает. JavaScript что ли написать?


Добавлено:
Сообщение автоматически объединено:

Понятно. Вот еще вопросы:
1. Можно ли по аутоит двигаться по ссылкам? Если да, то как?
Например(хочу попасть на форум):
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
_IELinkClickByText ($oIE, "Форум")
_____
А как по ссылке попасть на форум? Вот ссылка на форум: http://autoit-script.ru/index.php?action=post;topic=2399.0;num_replies=7.
Подставляю это значение вместо текста, ничего не получается...
=========================================
2. Как авторизироваться через аутоит?
Например:
Когда заходишь на этот сайт, пишет: * Добро пожаловать, Гость

Пожалуйста, войдите или зарегистрируйтесь.
Строим скрипт:
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
_IELinkClickByText ($oIE, "войдите")

______
Как что дальше писать? Надо, чтобы скрипт сам написал мое имя и пасс и нажал войти.
==========================================
3.Везде есть такая комбинация: "Если..., то ..., в противном...". Думаю этого и тут должно быть, но не нашел, как его сделать.
Например:

#include <IE.au3>
$oIE = _IECreate ("7ba.ru")
_IELinkClickByText ($oIE, "Регистрация")
___
Там регистрация поэтапно. Например бот хочу, чтобы бот ввел ник "rufik". Если этот ник занят, то "rufik1".
Если и этот ник занят, то "rufik2". Если "rufik2" тоже занят,
то пусть закроет окно.Например, как эту фишку создать?
==========================================
Пока эти 3 основных вопроса меня мучают. В остальном пока сам разобрался =) Конечно есть еще вопросы, но они еще
дибильнее, чем эти. Лучше эти узнаю, а может и до них сам додумаюсь...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
rufik
Для того чтобы понять логику работы с IE.au3 вам нужно знать JavaScript и HTML.
То есть нужно чётко представлять, как строится документ в браузере!

Например(хочу попасть на форум):
Код:
#include <IE.au3>
_IECreate("http://www.autoitscript.com")

А как по ссылке попасть на форум? Вот ссылка на форум: http://autoit-script.ru/index.php?action=post;topic=2399.0;num_replies=7.
Смотрим код выше!

Как авторизироваться через аутоит?
Как что дальше писать? Надо, чтобы скрипт сам написал мое имя и пасс и нажал войти.
На форуме об этом много писалось, не ленитесь, пользуйтесь поиском!

Пока эти 3 основных вопроса меня мучают. В остальном пока сам разобрался =) Конечно есть еще вопросы, но они еще
дибильнее, чем эти. Лучше эти узнаю, а может и до них сам додумаюсь...
OffTopic:
Как же вы в остальном разобрались, если основные вопросы вам не понятны? :blink:
 
Автор
R

rufik

Новичок
Сообщения
33
Репутация
4
Garrett,
Я вчера начал изучать autoit, еле еле разбираюсь. По той документации прочел уроки для новичков, 1 и 2 уроки получились. 2-ой урок сначало не получался, так как у меня блокнот на русском языке, но додуался ;D Потом сразу перешел на управление IEx. А там 90% материала на английском. Спасибо переводчику гугла, помог мне. И вам спасибо за помошь! Я о javascript-е не имею понятия, зато знаю html и pascal знаю (и немного delphi ;D). По вашим словам так выходит, что autoit лучше javaScripta?
И еще насчет 3 вопроса, вы так и не объяснили :( там должны быть команды if... then и должны повторяться несколько раз, так как там несколько вариантов (хотя может и ошибаюсь). Но не знаю, как их записать...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
1. Можно ли по аутоит двигаться по ссылкам? Если да, то как?
Например(хочу попасть на форум):
#include <IE.au3>$oIE = _IECreate ("http://www.autoitscript.com")
_IELinkClickByText ($oIE, "Форум")

Здесь функция _IELinkClickByText не приемлема! Почему? Смотрим.
Вот фрагмент HTML кода главной страницы httр://www.autoitscript.com

Код:
<map name="Map">
	<area alt="Home" href="http://www.autoitscript.com" coords="414, 12, 497, 31" shape="rect">
	<area alt="AutoIt v3" href="http://www.autoitscript.com/autoit3/" coords="496, 11, 573, 30" shape="rect">
	<area alt="Forum" href="http://www.autoitscript.com/forum/index.php?" coords="576, 12, 651, 31" shape="rect">
	<area alt="Wiki" href="http://www.autoitscript.com/wiki" coords="652, 12, 724, 31" shape="rect">
	<area alt="Gift Shop" href="http://www.cafepress.com/autoit" coords="725, 12, 802, 31" shape="rect">
	<area alt="Contact" href="http://www.autoitscript.com/email_us.shtml" coords="803, 12, 878, 31" shape="rect">
</map>

[box title=Для справки]Тег <MAP> служит контейнером для элементов <AREA>, которые определяют активные области для карт-изображений. Такие области устанавливают невидимые зоны на изображении, являющиеся ссылками на HTML-документы. Цель использования тега <MAP> — в связывании тега <IMG> с клиентской картой-изображением. Эта связь определяется применением единого идентификатора как в теге <IMG>, задаваемого параметром usemap, так и в теге <MAP>, устанавливаемого параметром name. [/box]

Однако в IE.au3 нет подходящих функций для работы с областями карт-изображений!!!
Но выход есть! Что мы имеем?
1. Тег <area>
2. Его атрибуты alt, href, coords и shape
Вот от этого и будем "танцевать" :smile:
Больше всего нам подойдёт тег alt, его и возьмём.

Пример 1 ("напролом")

Код:
#include<IE.au3>
$oIE = _IECreate ('http://www.autoitscript.com')
$oTag = _IETagNameGetCollection($oIE, 'area',2)
_IEAction($oTag,'click')

Здесь мы прямо указали индекс интересующего нас тега <area>
Это не универсальный способ, так как для того чтобы нажать на "Wiki", нам снова нужно будет писать такой же код, но только уже с индексом 3. Неудобно, да?!

Пример 2 ("функция")

Код:
#include<IE.au3>
$oIE = _IECreate ('http://www.autoitscript.com')
$oTag = _IETagAttributeGet($oIE, 'area', 'alt', 'Forum')
If $oTag <> 0 Then _IEAction($oTag,'click')

Func _IETagAttributeGet($Obj, $sTag, $sAttribute, $sValue)
	Local $Result = 0
	$oTags = _IETagNameGetCollection($Obj, $sTag)
	For $oTag In $oTags
		If $oTag.getAttribute($sAttribute) = $sValue Then
			$Result = $oTag
			ExitLoop
		EndIf
	Next
	Return $Result
EndFunc

Ну вот, теперь нам будет намного легче писать своего бота!
А если тег совсем "голый", спросите вы? К примеру <P>.
Ну, тогда придётся прибегать, к примеру, №1, хотя и его можно унифицировать ;D


3.Везде есть такая комбинация: "Если..., то ..., в противном...". Думаю этого и тут должно быть, но не нашел, как его сделать.
Например:

#include <IE.au3>
$oIE = _IECreate ("7ba.ru")
_IELinkClickByText ($oIE, "Регистрация")
___
Там регистрация поэтапно. Например бот хочу, чтобы бот ввел ник "rufik". Если этот ник занят, то "rufik1".
Если и этот ник занят, то "rufik2". Если "rufik2" тоже занят,
то пусть закроет окно.Например, как эту фишку создать?
==========================================
И еще насчет 3 вопроса, вы так и не объяснили :( там должны быть команды if... then

Честно говоря я с трудом понимаю где и что должно быть :(
Если вы про это:
Например бот хочу, чтобы бот ввел ник "rufik". Если этот ник занят, то "rufik1".
Если и этот ник занят, то "rufik2". Если "rufik2" тоже занят,
то пусть закроет окно.Например, как эту фишку создать?
то в данном случае вам нужно будет организовать проверку.
Вы должны проверять ключевые слова которые возвращает вам форма регистрации, и основываясь на них принимать те или иные действия.

Где-то так:
Код:
Dim $CountReg = 0
;~ 	Переход к странице регистрации
For $CountReg To 3
;~ 	Ждём, пока загрузится
;~	Заполнили формы
;~	Послали запрос
;~	Получили ответ
	Switch 'ответ'
		Case 'вы успешно зарегистрировались'
			ExitLoop
		Case 'такой ник уже занят'
		$CountReg += 1
		;~ 	Переход к странице регистрации
	EndSwitch
Next

If $CountReg = 3 Then
	;~ После трёх попыток
	;~ Закрываем всё, что хотим и ...
	Exit
EndIf
 
Верх