Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2015, 03:46   #1
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию Webbrowser и цикл

Привет, ребята. Прошу помочь с циклом.
Суть программы: через webbrowser открываем страницу сайта > проходим авторизацию > переходим на нужную нам страницу > парсим нужное значение > чистим куки.
Всё это есть, но вот как забить это всё в цикл?
Цикл должен брать логин и пароль с Мемо и повторять действие которые находятся в DocumentComplete


Код:

Кнопка для старта:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
   b, list:Integer;
begin
  b:= pos(':', Memo1.Lines.Strings[list]);
  if b > 0 then
   begin
    login := copy(Memo1.Lines.Strings[list], 1, b - 1);
    pass := copy(Memo1.Lines.Strings[list], b + 1, Length(Memo1.Lines.Strings[list]) - b);
   end;
     WebBrowser1.Navigate('https://mail.yandex.ua/');
end;
Событие DocumentComplete
Код:
procedure TForm2.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
Var
 i,b, list:Integer;
 html_tag:Variant;
 EncString,s : string;
 Enc : TEncoding;
begin
if URL='https://mail.yandex.ua/' then
 begin
  html_tag:=WebBrowser1.OleObject.Document.Forms.Item(0).Elements;
   For i:=0 To (html_tag.Length-1) Do
    Begin
     If (html_tag.item(i).name='login') Then html_tag.item(i).value:=login;
     If (html_tag.item(i).name='passwd') Then html_tag.item(i).value:=pass;
     If (html_tag.item(i).value='Войти') Then html_tag.item(i).click;
   End;
 end;

 if URL= 'https://passport.yandex.ru/passport?mode=auth&from=mail&origin=hostroot_ua_reliable_l_enter&retpath=https%3A%2F%2Fmail.yandex.ua' then showmessage('kuy');
 if URL= 'https://mail.yandex.ua/neo2/lite.jsx' then WebBrowser1.Navigate('http://****/');
 if URL= 'http://****/' then
 begin
  try
   HTML:= WB_GetHTMLCode(WebBrowser1, TEncoding.utf8);
  finally
   DeleteWebBrowserCache;
  end;
end;
Заранее спасибо.

Последний раз редактировалось _ZixeL_; 12.03.2015 в 03:52.
_ZixeL_ вне форума Ответить с цитированием
Старый 12.03.2015, 14:55   #2
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Неужели никто не знает?
_ZixeL_ вне форума Ответить с цитированием
Старый 15.03.2015, 10:19   #3
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Дружок, мы чекеры, бруты и прочее подобное дерьмо не делаем.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 15.03.2015, 10:30   #4
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию

Код:
var ts:tstringlist; //login:pass //global var
var c : integer; //global var

var login,pass,data : string

..
//цикл
data := ts[c];
inc(c);
//парсим из data логин и пасс
//делаем все остальное
..

Последний раз редактировалось Stilet; 15.03.2015 в 12:33.
MorgunZ вне форума Ответить с цитированием
Старый 15.03.2015, 10:56   #5
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Дружок, мы чекеры, бруты и прочее подобное дерьмо не делаем.
Может у меня работают около двух десятков сотрудников, за которыми надо следить?
Я пишу, в первую очередь, для себя. Сомневаюсь, что в паблике чекер на Веббраузере будет популярен.

Цитата:
Сообщение от MorgunZ Посмотреть сообщение
var ts:tstringlist; //loginass //global var
var c : integer; //global var

var login,pass,data : string

..
//цикл
data := ts[c];
inc(c);
//парсим из data логин и пасс
//делаем все остальное
..
Я так пробовал, программа просто зависает и всё.
Если есть возможность, пожалуйста, приведите полный код.

Последний раз редактировалось Stilet; 15.03.2015 в 12:33.
_ZixeL_ вне форума Ответить с цитированием
Старый 15.03.2015, 11:40   #6
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

цикл выглядит примерно так
while (true) begin end;
lomastr_ вне форума Ответить с цитированием
Старый 15.03.2015, 12:25   #7
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
цикл выглядит примерно так
while (true) begin end;
Пробовал. Результатов не смог добиться, программа тупо зависает.
_ZixeL_ вне форума Ответить с цитированием
Старый 15.03.2015, 12:39   #8
MorgunZ
Пользователь
 
Регистрация: 12.03.2015
Сообщений: 60
По умолчанию

Код:
while (true) begin end;
если ты так пишешь, то она у тебя и будет зависать, ибо у тебя бесконечный цыкл.
MorgunZ вне форума Ответить с цитированием
Старый 15.03.2015, 12:43   #9
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
Пробовал. Результатов не смог добиться, программа тупо зависает.
значит, как сказали цикл работает, еще вопросы?
lomastr_ вне форума Ответить с цитированием
Старый 15.03.2015, 13:22   #10
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от MorgunZ Посмотреть сообщение
Код:
while (true) begin end;
если ты так пишешь, то она у тебя и будет зависать, ибо у тебя бесконечный цыкл.
Да ставил переменные, не мог он у меня быть бесконечным. Сами попробуйте.
_ZixeL_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как составить цикл (for) чтобы цикл работал пока RegExp.Match не будет пустым? FleXik Общие вопросы Delphi 11 05.03.2014 14:49
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34