AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Framequelltexte auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Framequelltexte auslesen

Ein Thema von quendolineDD · begonnen am 16. Okt 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#1

Framequelltexte auslesen

  Alt 16. Okt 2007, 16:33
Hallo DP-Community.

Ausgehend von dem Thread habe ich den Quelltext von Marabu meinen Bedürfnissen angepasst. Ich weiß nun aber nicht, wie ich den Quelltext der bestehenden Seite auslese.
Es ist ein Frameset und ich bräuchte von jeweiligen Frames den aktuellen Quelltext um diesen auswerten und interagieren zu können.

Bis jetzt funktioniert der gesamte Quelltext einwandfrei.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    GroupBox1: TGroupBox;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    procedure FormCreate(Sender: TObject);
  private
    ActiveUrl: string;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BeforeNavigate2(Sender: TObject; const pDisp: IDispatch;
  var URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
  var Cancel: WordBool);
begin
  with Sender as TWebBrowser do
    if pDisp = DefaultInterface then
      ActiveUrl := URL;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  url = 'http://88.198.6.23/freewar/';
  iurl = 'http://88.198.6.23/freewar/internal/frset.php';
var
  wb: TWebBrowser;
  body, doc, frm: OleVariant;
begin
  wb := TWebBrowser.Create(nil);
  wb.ParentWindow := HWND(HWND_MESSAGE);
  wb.OnBeforeNavigate2 := BeforeNavigate2;
  wb.Navigate(url);
  repeat
    Sleep(50);
    Application.ProcessMessages;
  until wb.ReadyState >= READYSTATE_COMPLETE;
  doc := wb.OleObject.Document;
  body := doc.body;
  frm := doc.Forms.Item(0);
  frm.Elements.Item('name').Value := Edit1.Text;
  frm.Elements.Item('password').Value := Edit2.Text;
  frm.Elements.Item('submit').Click;
  repeat
    Sleep(50);
    Application.ProcessMessages;
  until wb.ReadyState >= READYSTATE_COMPLETE;
  wb.Navigate(iurl);
  repeat
    Sleep(50);
    Application.ProcessMessages;
  until wb.ReadyState >= READYSTATE_COMPLETE;


  ShowMessage(StringReplace(ActiveUrl, '&', '&&', [rfReplaceAll]));
  wb.free
end;

end.
Was marabu hier geschrieben hat, klappt bei mir nicht, da der Compiler nur meckert
Zitat:
[Fehler] Unit1.pas(21): Undefinierter Bezeichner: 'IHTMLFramesCollection2'
[Fehler] Unit1.pas(75): Undefinierter Bezeichner: 'IHTMLDocument2'
[Fehler] Unit1.pas(75): Operator ist auf diesen Operandentyp nicht anwendbar
...
Grüße aus Dresden
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Framequelltexte auslesen

  Alt 16. Okt 2007, 20:20
Hallo Lars,

die fehlenden Schnittstellen-Deklarationen stecken in der Unit MSHTML.

Freundliche Grüße
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Framequelltexte auslesen

  Alt 16. Okt 2007, 20:46
Ich hab es nun so gelöst, das die einzelnen Frames in Proceduren erneut aufgerufen werden und ausgelesen werden.

Werde den Post nochmal editieren, wenn ich alle Frames so wie ich es benötige entgültig ausgelesen und bearbeitet habe. Bin jetzt erst mit dem ersten Frame fertig :-\
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz