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

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

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

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 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