Что нового

[Сеть, интернет] Нужен шаблон для команды IniRead, для чтения file.ini построчно.

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
37
Репутация
2
Сделал заготовку для поочерёдного открывания почтовых ящиков.
Скрипт работает но хромает, хочу исправить хромоту прибегнув к Вашей помощи.
Алгоритм:
1.Создаётся GUI окошко с облегчённым ИЕ.
2.В окошке загружается майл.ру
3.Считываем IniRead с файла ini логин1 пароль1
3.1 Удаляем считанную строчку командой IniDelete, для того чтобы в следующем цикле забить следующий логин-пароль :scratch:
4.Забиваем запомненный пароль1-логин1
;5.Тут будет код действий в почтовом ящике.
6.Обновление на стартовую страничку для нового цикла.
3.Считываем IniRead с файла ini логин2 пароль1

Сам скрипт:
Код:
;Задумка на автоматическое вхождение в почту. из списка логин+пароль. в файле "mailru.ini"
#include <GUIConstantsEx.au3>
HotKeySet('{Esc}', '_Exit') 
$Project1 = GUICreate("Имя окна", 650, 500, -1, -1) 
$GUIActiveX = ObjCreate("Shell.Explorer.2")
$GUIActiveX_ctrl = GUICtrlCreateObj($GUIActiveX, 0, 0, 640, 480) 
GUISetState(@SW_SHOW)
while 3
$GUIActiveX.navigate("mail.ru") 
Sleep(3000)
$login=IniRead("C:\AutoIt-скрипт\mailru.ini", "names", "майл1", "Ошибка в извлечении логина");или топорно: "имя-почты"
$pswrd=IniRead("C:\AutoIt-скрипт\mailru.ini", "pswrds", "пароль1", "Ошибка в извлечении пароля") ;или топорно:"Пароль-почты"
IniDelete("C:\AutoIt-скрипт\mailru.ini", "names", "майл1"); Удаляет первую найденую строчку "майл1=..."
;удаляет, чтобы потом можно было перелогинется уже по второй, третьей... и т.д. уч.записей.
Send('{TAB 2}') 
Sleep(300)
Send($login)
Sleep(300)
Send('{TAB 2}')
Sleep(300)
Send($pswrd)
Sleep(300)
Send('{enter}')
Sleep(3000)
;___________Тут телодвижения внутри почтового ящика, пока ещё не придумал осмысленного алгоритма____
Sleep(1000)
WEnd


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

;__________Оберег от "залипания"
Func _Exit()
    Exit
EndFunc



Содержимое mailru.ini из которого скрипт тянет логин и пароль. ДО ЗАПУСКА скрипта:

[names]
майл1=qwer11
майл1=qwer22
майл1=qwer33
майл1=qwer44
майл1=qwer55
майл1=qwer66

майл2=asdf
майл3=zxcv
майл4=tyui
майл5=ghjk
[pswrds]
пароль1=1234

пароль2=2345
пароль3=4356
пароль4=4567
пароль5=5678

Содержимое mailru.ini после прохода скрипта. Удалены все "использованные" строчки логинов:
[names]

майл2=asdf
майл3=zxcv
майл4=tyui
майл5=ghjk

[pswrds]
пароль1=1234

пароль2=2345
пароль3=4356
пароль4=4567
пароль5=5678

В работе скрипта возникло два вопроса:
1.Почему цикл идёт более 3х раз, т.е. бесконечный получается?
2.Основная проблема:
Хочу уйти от моего корявого, топорного метода перебора логинов и паролей через их удаление. Помнится видел где-то красивый пример с ini файлом типа:
[Section]
логин1=пароль1
логин2=пароль2
логин3=пароль3
...
т.е. Значения брались с поочерёдно после прохождения очередного цикла.
Намекните где поискать шаблон считывания с ini файла, построчно, без удаления строк.

Мой первый пост :-[, спс.
P.S. картинка после прохода скрипта:
P.P.S Убрал лишние комментарии.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 574
Репутация
335
Большие куски безобразной писанины заключайте в спойлер пожалуйста. Читать невозможно. Только с 4 раза понял о чем Вы спрашиваете.
Код:
While 3

Wend

Это и есть бесконечный цикл, а не то что цикл будет отрабатывает 3 раза. 3 - это условие при котором будет работать цикл. Это равнозначно тому что "Пока 3 равно 3 выполнить действие"

В заключение: Не сможете Вы работать с 3 ящиками одновременно =) Есть такая штука cookies ( a.k.a куки) Они то и не дадут с ними работать одновременно.
 
Автор
DStalker

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
37
Репутация
2
Medic84, спасибо за замечания.
Мне не нужно чтобы одновременно 3 почты открывались.
В моём исполнении скрипт работает, хотя очень сильно хромает, поочерёдно открывает почту 1...5 и т.д.
Так как после полного перебора логин-паролей приходится файл с логин паролями mailru.ini перезаписывать копией:
"корпия (1)mailru.ini" 5kb -> "mailru.ini" 1kb

Вот и прошу форумчан подсказать с шаблончиком. В идеале следующего вида:
Чтение текстового файла происходит строк вида
логин1=пароль1
логин2=пароль2
логин3=пароль3
логин4=пароль4
...
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 574
Репутация
335
DStalker
Да удалять вообще не нужно. Зачем?
Напишите конструкцию:
Код:
For $i = 1 To 3
    ;какой то код
    $login=IniRead("C:\AutoIt-скрипт\mailru.ini", "names", "майл" & $i, "ТУТ Логин по умолчанию");или топорно: "имя-почты"
    $pswrd=IniRead("C:\AutoIt-скрипт\mailru.ini", "pswrds", "пароль" & $i, "ТУТ пароль по умолчанию") ;или топорно:"Пароль-почты"
    ;какой то код
Next

И никаких циклов бесконечных, и удалять - перезаписывать INI не надо.
 
Автор
DStalker

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
37
Репутация
2
То что надо!
Почти :whistle:
Просто помнится в памяти запала картинка:
текстовой файл вида:
логин1=пароль1
логин2=пароль2
...
И перебор вёлся строчкой, а не как в примере с секциями [логины] [пароли]. Хотя возможно это было на AutoHotKey.

Спасибо, тема решена. Как в идеале отработаю скрипт, допишу окончательный вариант.
 
Верх