![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Добрый день народ .Передомной встала такая проблема никак не мого обойти ее сам .Нашел в нете кучу статей но они мне не помогают.
Я пишу программу которая должна проверять баланнс на щету в нете. Вот код этой нет страницы : Код HTML:
Вот алгоритм моей проги : 1) спомощью веб браузера зайти на сайт описанный выше (https://stat.spark-com.ru/) 2)программно вбить в поля логини пороль 3)(какраз то что у меня не получается ) нужно нажать на единственную кнопку на странице в веббраузере которая должна сделать запрос . вот то что я уже наколякал ) Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,OleCtrls, MSHTML,SHDocVw,ActiveX, ShellAPI; type TForm1 = class(TForm) Button1: TButton; WebBrowser1: TWebBrowser; ComboBox2: TComboBox; ComboBox3: TComboBox; Button2: TButton; Edit3: TEdit; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //вписывает в поля логина и пороля логин и пороль ) Это работает var i: integer; ov: OleVariant; iDisp: IDispatch; iEl: IHTMLElement; iDoc:IHtmlDocument2; login_al,pwd_al: string; iColl: IHTMLElementCollection; iInputElement: IHTMLInputElement; begin if WebBrowser1.Document=nil then Exit; WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2,iDoc); if not Assigned(iDoc) then begin ShowMessage('Nothing dowloaded ...'); Exit; end; ov:='INPUT'; IDisp:=iDoc.All.Tags(ov); if Assigned(IDisp) then begin IDisp.QueryInterface(IHTMLElementCollection,iColl); if Assigned(iColl) then begin for i:=1 to iColl.Get_Length do begin iDisp:=iColl.Item(pred(i),0); iDisp.QueryInterface(IHTMLInputElement,iInputElement); if Assigned(iInputElement) then begin if iInputElement.Get_Name='login' then iInputElement.Set_Value('E_103095'); if iInputElement.Get_Name='password' then iInputElement.Set_Value('пароль'); if iInputElement.type_='submit' then begin iInputElement.QueryInterface(IHtmlElement,iEl); iEl.click; end; end; end; end; end; end; procedure TForm1.Button2Click(Sender: TObject); // Это загрузка страницы var Flags: OLEVariant; begin Flags := 0; WebBrowser1.Navigate(WideString(form1.Edit3.Text), Flags, Flags, Flags, Flags); end; procedure TForm1.Button3Click(Sender: TObject); {По нажатию этой кнопки как раз и должен произойти запрос . Вот этот код я взялс нета вроде коомпилируется но не работает} var ovElements: OleVariant; i: Integer; begin ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; if (ovElements.item(i).tagName = 'submit') then ovElements.item(i).Click; end; end. Пожалуйсто помогите мне дописать программку буду рад любым предложениям и даже другому способу реализации моей задачи. Admin: Настоятельно советую пользоваться предварительным просмотром, и быть внимательнее при оформлении кода. Бан: 5 дней. Последний раз редактировалось Admin, 23.07.2008 в 17:18. |
#2
|
|||
|
|||
![]() Цитата:
Результат появится в Memo. -=Bond911=- |