![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |