Конференция "Сети" » Запоминание данных введенных в формы браузера [WinXP]
 
  • Vladimir © (25.09.11 19:41) [0]
    Здравствуйте! Использую Delphi 2009. Пишу программу, которая по сути является браузером, но после авторизации пользователя на сайтах выдаем ему суммарную информацию из аккаунтов и дает возможность быстрого перехода к нужной информации. В качестве браузера выбрал MozillaBrowser вместо стандартного WebBrowser. И тут все бы хорошо, но не знаю каким образом запоминать введенные пользователем логин и пароль на сайтах? Подскажите пожалуйста!
  • Vladimir © (25.09.11 19:47) [1]
    И ещё такой момент. Есть несколько вкладок PageControl на которых размещены MozillaBrowser и при загрузке в них страниц, а происходит она поочередно при первом запуске(сначала грузится сайт в первой вкладке, когда загрузится начинает загружаться второй и так далее). Загрузка проходит нормально, а вот потом происходит что-то странное перейти в браузере на другую страницу или изменить значение CheckBox, ComboBox можно, а вот ввести данные не в одно из текстовых полей нельзя. То есть курсор изменяется на нужный, а в само текстовое поле не ставится и поле не реагирует ни на одну кнопку, но вот выделенный на странице текст можно легко перетащить мышкой в текстовое поле и он там отображается, хоть и удалить его невозможно.
  • b z (25.09.11 20:07) [2]
    Запоминать на сайтах? или где, а сайты чьи?
  • Vladimir © (25.09.11 21:44) [3]
    запоминать в программе, то есть когда человек запускает программу в следующий раз ему уже не требуется заново вводить логин и пароль на сайтах, они уже вбиты в соответствующих полях. Сайты чьи? - людей... mail.ru, yandex  и т.д.
  • Vladimir © (27.09.11 13:09) [4]
    Каким образом запоминать логин и пароль введенный пользователем в MozillaBrowser так и не понял. Пришлось вернуться к стандартному WebBrowser.  И использовать:

    FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
     var
       i, j: Integer;
       FormItem: Variant;
     begin
       Result := False;
       //Формы нет
     if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
       begin
         Exit;
       end;
       //Форм в документе
     for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
       begin
         FormItem := WebBrowser.OleObject.Document.forms.Item(I);
         for j := 0 to FormItem.Length - 1 do
         begin
           try
             //если найденно изменить.
           if FormItem.Item(j).Name = FieldName then
             begin
               FormItem.Item(j).Value := Value;
               Result := True;
             end;
           except
             Exit;
           end;
         end;
       end;
     end;

    Текстовые поля недоступны были по причине неверного ReadyState компонента MozillaBrowser.

    P.S. Если кто-нибудь знает как запоминать логин и пароль в MozillaBrowser или знает бесплатный компонент не на основе IE подскажите пожалуйста!
  • Cobalt © (27.09.11 16:00) [5]
    Анализируй состояние полей  
    <input type="password"

    , а также прочих полей Формы (
    <Form> < / Form>

    ) в которой находится этот
    Input

    при отправке браузером запроса POST
  • Vladimir © (28.09.11 00:19) [6]

    > Cobalt

    Спасибо.

    Сделал ещё проще:

    ...
    //переменные
    var
    i: Integer;
    input_text: Variant;
    begin
    //изначально значение false
    Result := False;
    //находим поля ввода
    input_text:=Browser.OleObject.document.all.tags('INPUT');
    //перебираем поля ввода
    for i:=0 to input_text.length-1 do
     //если наше поле, то
     if input_text.item(i).name=FieldName then
          //вставляем в него значение
          input_text.item(i).value:=Value;
    ...

    На тех сайтах которые нужны мне работает. Если что то в коде не так и в дальнейшем могут возникнуть ошибки скажите.
  • Dennis I. Komarov © (28.09.11 17:16) [7]

    > if input_text.item(i).name=FieldName then
    >       //вставляем в него значение
    >       input_text.item(i).value:=Value;

    А Value откуда брать?
  • brother © (30.09.11 20:53) [8]
    > А Value откуда брать?

    я, так понимаю, эта инфа кэшится в файло...
  • Dennis I. Komarov © (01.10.11 23:25) [9]

    > я, так понимаю, эта инфа кэшится в файло...

    Ну я так понял что и паролэ в файло... Юзвери имеют полное право не следовать заповедям Заратустры по отношению к автору...
  • вапвапвап (23.04.14 14:12) [10]
    смисми
 
Конференция "Сети" » Запоминание данных введенных в формы браузера [WinXP]
Есть новые Нет новых   [134427   +35][b:0][p:0.001]