AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Twebbrowser und Image klick... die xxx'te Variante
Thema durchsuchen
Ansicht
Themen-Optionen

Twebbrowser und Image klick... die xxx'te Variante

Ein Thema von Der.Kaktus · begonnen am 31. Mär 2008 · letzter Beitrag vom 7. Apr 2008
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 1. Apr 2008, 09:00
Zitat:
Du kannst ja vorerst ausprobieren, ob es mit dieser Methode funktioniert.
D.h du bewegst den Mauszeiger über das Element und simulierst Enter.
Wo bekomme ich die Aktuelle Position des Elementes, damit ich Setcursorpos einsetzen kann?
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#12

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 1. Apr 2008, 09:16
Du kannst mal mit folgendem Code spielen (Auszug aus meinem WinSpy)

Delphi-Quellcode:
var
   r: TRect;
   Element: IHTMLElement;

Delphi-Quellcode:
          r.Left := Element.offsetLeft;
          r.Top := Element.offsetTop;
          repeat
            Element := Element.offsetParent;
            if Element <> nil then
            begin
              if (Element.tagName = 'TD') // if parent a table cell,
                then
              begin
                r.Left := r.Left + (Element as IHTMLElement2).ClientLeft; // append cell border width to calcs
                r.Top := r.Top + (Element as IHTMLElement2).clientTop;
              end;
              r.Left := r.Left + Element.offsetLeft;
              r.Top := r.Top + Element.offsetTop;
            end;
          until Element = nil;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 1. Apr 2008, 09:23
Danke, werde es morgen mal probieren, da ich heute nicht auf Arbeit bin.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 12:08
Hallo, habe mit dem Code bissl rumgespielt aber ausser eine Zugriffsverletzung brachte es keinen Erfolg.

hier mal mein Codeschnippsel...vielleicht habe ich nen Denkfehler.

Delphi-Quellcode:
procedure TForm1.click_pic(s_pic:string);
var
  iDoc: IHtmlDocument2;
  i: integer;
  ov: OleVariant;
  iDisp: IDispatch;
  iColl: IHTMLElementCollection;
  InputImage: HTMLInputImage;
  r: TRect;
  tp:TPoint;
  Element: IHTMLElement;

begin
  Wb.ControlInterface.Document.QueryInterface(IHtmlDocument2, iDoc);
  if not Assigned(iDoc) then
  begin
    Exit;
  end;
  ov := 'INPUT';
  iDisp := iDoc.all.tags(ov);
  if Assigned(IDisp) then
  begin
    IDisp.QueryInterface(IHTMLElementCollection, iColl);
    if Assigned(iColl) then
    begin
      i:=iColl.Get_length;
      for i := 1 to iColl.Get_length do //iColl.Get_length=0 worduch es nicht weiter geht
      begin
        iDisp := iColl.item(pred(i), 0);
        iDisp.QueryInterface(HTMLInputImage, InputImage);
        if Assigned(InputImage) then
        begin
          if pos(s_pic,InputImage.Name)<>0 then
          // if the name is submit / falls der name submit lautet
          begin
           inputimage.focus;
            //InputImage.click; // click it / klick es
           r.Left := Inputimage.offsetLeft;
           r.Top := Inputimage.offsetTop;
           element:=inputimage.offsetparent;
           repeat
            if Element <> nil then
            begin
               if (Element.tagName = 'TD') // if parent a table cell,
                then
               begin
                r.Left := r.Left + (Element as IHTMLElement2).ClientLeft; // append cell border width to calcs
                r.Top := r.Top + (Element as IHTMLElement2).clientTop;
               end;
              r.Left := r.Left + Element.offsetLeft;
              r.Top := r.Top + Element.offsetTop; // <----- hier geht er Heim steht auch im tagNamen nichts gescheites drin
             end;
           Element := Element.offsetParent;
           until Element = nil;
           tp.x:=r.Left+10;
           tp.y:=r.Top+10;
           wb.clienttoscreen(tp);
           windows.setcursorpos(tp.x,tp.y);
....
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
marabu

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

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 12:34
Hallo ihr beiden,

ein paar Fragen:

Das Image wird in jedem Fall gefunden?
Der Aufruf der Methode Click() scheitert?
Was genau funktioniert nicht?

Maßnahmen zur Aushebelung der Automatisierung werden auf der Client-Seite getroffen. Ist entsprechender Script-Code im HTML-Dokument vorhanden?

Nicht zuletzt: Stammt das Markup im Beitrag #1 aus einem Frame?

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 12:48
Hallo marabu,

1: Image wird gefunden..Focus kann ich setzen
2: click scheitert
3: ich wollte nun probieren, den Mousecursor auf das Image zu setzen und einen Mouseclick zu simulieren. Leider scheitert es noch bei Positionsfindung.
4: nur das CGI ..kein Frame
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
marabu

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

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 13:02
Dann sollte es dir gelingen die firmenspezifischen Teile der Seite zu entfernen, so dass mit der abgespeckten Seite das Verhalten nachgestellt werden kann. Es ist dann viel leichter zu helfen ...
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 13:59
@marabu
habe eben mal eine Variante getestet(ohne das cgi)..da geht click()..scheint doch im CGI abgefangen zu werden.Also doch die Variante mit Mouseposition und dann Mouseclick.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
marabu

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

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 15:09
Wenn die Art der Benutzer-Interaktion im CGI behandelt werden soll, dann muss der Klick vorher ausgelöst worden sein und zu einem HTTP-Request geführt haben.

Wenn eine Server-Erweiterung (CGI, FastCGI, ISAPI, ...) auf die Art der Benutzer-Interaktion reagieren soll, dann benötigt sie ein per POST-Variable oder HTTP-Header übermitteltes Kriterium. Du könntest also den Request testweise auf einen eigenen Server umleiten, damit du die übermittelten Werte untersuchen kannst.

Wenn du keine unverfängliche Testseite zur Verfügung stellen kannst, dann ist leider keine gezielte Hilfe von außen möglich.
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Twebbrowser und Image klick... die xxx'te Variante

  Alt 2. Apr 2008, 15:57
@marabu
Wie auf meinem HTML Auszug ersichtlich ist, wird ueber eine "post" Variable ein CGI Servererweiterung aufgerufen. An diese Datei komme ich aber leider nicht ran. Danke trotzdem.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 19:17 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