Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Webbrowser Scroll- Problem (https://www.delphipraxis.net/175015-webbrowser-scroll-problem.html)

IMPEGA 24. Mai 2013 17:44

Delphi-Version: 7

Webbrowser Scroll- Problem
 
Hi
Ich versuche einen einfachen E-Mail Creator zu erstellen, leider hänge ich fest.

Ich kann auf dieser Seite h**ps://signup.live.com/signup.aspx?wa=wsignin1.0&lic=1 nicht scrollen.
Normalleerweise geht es recht einfach
WebBrowser1.OleObject.Document.ParentWindow.Scroll By(0, + Y);
WebBrowser1.OleObject.Document.ParentWindow.Scroll By(+ X, 0);
Bei live.com aber kriege ich es nicht hin.
Sufu habe ich reichlich benutzt und auch googeln ist mir nicht fremd.
Frames kann ich auf der Seite auch nicht erkennen.

Ich werde versuchen nach dem Captcha zu suchen, das ist aber nicht mein Problem, ich möchte gerne wissen warum ich nicht scrollen kann.
Nach dem Motto, der Weg ist das Ziel.

Wäre für Eure Tipps sehr dankbar.

Volker Z. 24. Mai 2013 20:02

AW: Webbrowser Scroll- Problem
 
Hallo,

per JavaScript (habe mir das nicht im Einzelnen angesehen) wird die Seite wohl soweit gerendert, dass es mit ScrollBy nicht mehr funktioniert.
Mit JavaScript wird ein DIV-Container (id="c_base") erzeugt, der dann das Formular enthält.

Du kannst mal folgendes versuchen:
Delphi-Quellcode:
procedure TForm1.ScrollBy (const DeltaX, DeltaY: Integer);
var
  d : IHTMLDocument3;
  e : IHTMLElement;
  c : IHTMLElement2;
begin
  if not Assigned (WebBrowser1.Document) then
    Exit;

  d := WebBrowser1.Document as IHTMLDocument3;
  if not Assigned (d) then
    Exit;

  e := d.getElementById ('c_base');
  if Assigned (e) then
    begin
      c := e as IHTMLElement2;
      if Assigned (c) then
        begin
          c.scrollTop := c.scrollTop + DeltaY;
          c.scrollLeft := c.scrollLeft + DeltaX
        end;

      Exit
    end;

  WebBrowser1.OleObject.Document.ParentWindow.ScrollBy (DeltaX, DeltaY)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ScrollBy (0, 50)
end;
Funktioniert natürlich nur solange der Container über die id c_base referenziert werden kann.

Gruß

IMPEGA 24. Mai 2013 21:15

AW: Webbrowser Scroll- Problem
 
Danke dir. Es funktioniert super.
Mein Problem wurde dadurch aber noch nicht gelöst.
Der blaue Balken bleibt immer im Vordergrund.

Ich habe angenommen das scrollen schiebt das Ganze nach unten.
Leider bleibt mein Element "c_cb0" die ganze Zeit im Vordergrund und sperrt mir die Sicht.
Ich kann es auf eine unsaubere Art umgehen, indem ich mein Fenster erweitere, Screen erfasse und dann entsprechend abschneide.
Das möchte ich aber nach Möglichkeit vermeiden.

Kann man Elemente auch ausblenden? (Habe noch nicht danach gegoogelt, mache aber gleich)

Volker Z. 24. Mai 2013 21:42

AW: Webbrowser Scroll- Problem
 
Hallo,

ich weiß nicht ob ich Dich richtig verstanden habe; Du kannst Dir mal folgendes ansehen, um den blauen Balken verschwinden zu lassen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
   d : IHTMLDocument3;
   e : IHTMLElement;
begin
   if not Assigned (WebBrowser1.Document) then
     Exit;

   d := WebBrowser1.Document as IHTMLDocument3;
   if not Assigned (d) then
     Exit;

   e := d.getElementById ('c_cb0');
   if Assigned (e) and Assigned (e.style) then
     e.style.display := 'none';

   e := d.getElementById ('c_base');
   if Assigned (e) and Assigned (e.style) then
     e.style.top := '0px';
end;
Gruß

IMPEGA 24. Mai 2013 21:50

AW: Webbrowser Scroll- Problem
 
OK, danke dir.
Das funktioniert super.
Wenn ich mir das anschaue, scheint es echt easy zu sein, ich habe zu kompliziert gedacht.
Unwissenheit ist aber kein vergehen.

Danke noch mal. Hast mir super geholfen.

Volker Z. 25. Mai 2013 00:53

AW: Webbrowser Scroll- Problem
 
Hallo,

freut mich geholfen zu haben; aber Dir ist schon bewusst, dass ganze Spaß nur funktioniert, so lange die bei M$ die ids - wie in den Beispielen - beibehalten(?!).

Eine, darauf zementierte Anwendung (aber das betrifft Dich vielleicht auch nicht) würde ich jetzt nicht weitergeben.

Gurß

Medium 25. Mai 2013 01:09

AW: Webbrowser Scroll- Problem
 
Ich bin mir auch nicht so sicher, dass es vom Betreiber gewünscht ist, dass man automatisiert Adressen dort erstellen kann. Wenn, dann gäbe es dafür eine API mit entsprechender Dokumenatation. Ich hielte es für sauberer, dem Anwender die jeweiligen Signup-Seiten in ihrem Standardbrowser zu öffnen. Diese sind natürlich auch vor Adressänderungen nicht sicher, aber zumindest wäre das der für alle Beteiligten "nette" Weg. Ausser natürlich, es gäbe eine entsprechende API. Vorstellen kann ich mir das jedoch eher nicht, da es Missbrauch ein Türchen öffnen würde.

IMPEGA 25. Mai 2013 12:30

AW: Webbrowser Scroll- Problem
 
@Volker Z.
Natürlich ist mir das bewusst.

@Medium und Volker Z.
Ich nicht vor ein Tool für die Masse zu schreiben.
Sehr oft braucht man aber eine Mail-Adresse um sich zB. in einem Forum oder Seite anzumelden.
Die meisten Seiten sind schon so schlau die Wegwerfadressen zu blockieren.
Da sollte mein Tool anspringen.
In 2 Klicks eine fertige Adresse erstellen.
Ein Mal benutzen, und verfallen lassen. Den Spam den MS nachher auf die Adresse schickt sollen Sie für sich behalten.
Ob es nun vom Betreiber gewünscht wird oder nicht...hm... welche Rolle spielt es dabei?
Ich wünsche mir auch kein Spam von den Betreibern, trotzdem bekomme ich reichlich was davon.
Selbst wenn man Alles in die Wege leitet um es zu blockieren, ganz ohne Werbung geht gar nichts.
Nun, sagt der eine oder anderer, die finanzieren sich doch mit Werbung.
Den Satz möchte ich nun nicht kommentieren. MS ist nicht gerade am verhungern. Die kriegen nur die Schnauze NIE voll.
Also ignoriere ich bewusst die Tatsache dass es nicht erwünscht ist. Ich gebe damit nur das zurück was ich auch bekomme.

Man kann natürlich über vieles streiten. Wer seine moralische Grenze nicht überschreiten möchte braucht auch hier nicht zu antworten.
Eine Function des Browsers kann man aber auf viele Arten benutzen. Ich hätte mir auch irgend ein Blödsinn als Vorwand einfallen lassen.
Warum sollte ich es aber? Eigentlich ging mir nicht mal wirklich um das Tool, sondern um die Möglichkeit es zu machen.

Geld ist auch eine gute Sache.Ich kann damit mein Essen aber auch Drogen oder gar Waffen kaufen.
Wird das Geld dadurch automatisch schlecht?

Noch mal danke an Alle beteiligten.

Volker Z. 26. Mai 2013 02:27

AW: Webbrowser Scroll- Problem
 
Hallo,
Zitat:

@Volker Z.
Natürlich ist mir das bewusst.
Dachte ich mir eigentlich schon,
Zitat:

Wenn ich mir das anschaue, scheint es echt easy zu sein, ich habe zu kompliziert gedacht.
Unwissenheit ist aber kein vergehen.
wollte aber nur noch mal sicher gehen :wink:

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 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