Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.07.2008, 17:04
Аватар для Sharky
Sharky Sharky вне форума
Активный
 
Регистрация: 20.03.2007
Сообщения: 202
Репутация: 10
По умолчанию Помогите доделать прогу 'баланс'

Добрый день народ .Передомной встала такая проблема никак не мого обойти ее сам .Нашел в нете кучу статей но они мне не помогают.
Я пишу программу которая должна проверять баланнс на щету в нете.
Вот код этой нет страницы :

Код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=koi8-r" /> <title>.: мЙЮОЩК лБВЙОЕФ рПМШЪПЧБФЕМС уРБТЛ</title> <link rel="stylesheet" type="text/css" href="/main_ru.css" /> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="/ie6.css" /> <![endif]--> </head> <body> <h1 class="hide">мЙЮОЩК лБВЙОЕФ рПМШЪПЧБФЕМС</h1> <form id="loginForm" action='/?lang=ru' method=post> <p>мПЗЙО&nbsp;<input type="text" name="login" /></p> <p>рБТПМШ&nbsp;<input type="password" name="password" /></p> <button type="submit"><img class="hide" src="/img_ru/lkAuthBtn.png" alt="чПКФЙ" /></button> <div id="loginShade"></div> </form> <div class="sparkenish" id="sparkenish"> <div id="sparkenishBalloon"> <img id="sparkenishBalloonLTC" src="/img_ru/lkSparkenishBalloonLTC.png" /> <img id="sparkenishBalloonRTC" src="/img_ru/lkSparkenishBalloonRTC.png" /> <img id="sparkenishBalloonLBC" src="/img_ru/lkSparkenishBalloonLBC.png" /> <img id="sparkenishBalloonRBC" src="/img_ru/lkSparkenishBalloonRBC.png" /> <img id="sparkenishBalloonArrow" src="/img_ru/lkSparkenishBalloonArrow.png" /> <a id="sparkenishBalloonClose" href="#"><img src="/img_ru/lkSparkenishBalloonClose.png" alt="ЪБЛТЩФШ РПНПЭОЙЛБ" /></a> <p> дПВТП РПЦБМПЧБФШ Ч МЙЮОЩК ЛБВЙОЕФ! <br> </p> </div> <div id="sparkenishImgCont"><img id="sparkenishImg" src="/img_ru/lkSparkenish.png" alt="рПНПЭОЙЛ УРБТЛ" /></div> </div> <script language="javascript" src="/script.js"></script> </body> </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  
Старый 23.07.2008, 19:37
bond911 bond911 вне форума
Прохожий
 
Регистрация: 08.10.2006
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Memo.Lines.Text:=IdHttp.Get('https://stat.spark-com.ru/?lang=ru?login=Твой логин&password=Твой пароль');

Результат появится в Memo.
__________________
-=Bond911=-
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025