Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webbrowser Buttonclick (https://www.delphipraxis.net/19708-webbrowser-buttonclick.html)

Flex 7. Apr 2004 14:29


Webbrowser Buttonclick
 
Moin,
ich stell mich nochma kurz vor, da das hier erst mein 3. post is: Also ich bin Felix, 20 Jahre alt, und bin n "Hobbyprogrammierer". Könnte mich als Newbie bezeichnen, setze mich halt manchmal an kleine Projekte, die für mich sinnvoll erscheinen. Mehr fällt mir gerade nich ein :D

ich weiss, dass es schon häufiger solche Themen gab, hab aber gesucht und alles mögliche ausprobiert, nur bekomm ich das alles irgendwie nicht gebacken :wall: .
ich möchte für folgende seite:
http://194.forum.onetwomax.de/area=2&action=newtopic
dass mein proggie den button "neues Thema erstellen" im twebbrowser anklickt.
Das Ausfüllen der Felder und so hab ich scho alles hinbekommen, nur daran hackts noch.
Danke im voraus,
Liebe Grüße
Flex

shmia 7. Apr 2004 15:41

Re: Webbrowser Buttonclick
 
Auf deinem angegebenen Link befinden sich 2 Submit-Buttons mit den
Namen "savenewtopic" und "previewposting".

Du müsstest also nachdem du alle Felder gefüllt hast eine Schleife
über alle Form Items laufen lassen und den Namen prüfen.
Falls das Form Item "savenewtopic" heisst, dann:
actitem.Click;

Evtl. geht auch:
Delphi-Quellcode:
var
   document, dasform : OleVariant;
begin
   document := WebBrowser.OleObject.document;
   
   dasform := document.forms.Item(0); // das erste Web Form
   // alle Felder füllen
   ...
   // und abschicken
   dasform.Item('savenewtopic').Click;
end;

Flex 7. Apr 2004 15:52

Re: Webbrowser Buttonclick
 
Danke für die schnelle Hilfe, nur leider klappt das irgendwie nicht.
Den ersten tipp hatte ich schon ausprobiert, da hat er das item nur leider nie gefunden.. (hab ich da was falsch gemacht?)
und das zweite löst bei mir eine Zugriffsverletzung aus.
Könntest du/irgendjemand den code vielleicht selber mal ausprobieren? Wäre echt super!
Mfg
Flex

Flex 7. Apr 2004 21:00

Re: Webbrowser Buttonclick
 
sooooo heeeeelft mir doch.. :D
komm nich weitaaaa :gruebel:

Daniel 7. Apr 2004 21:23

Re: Webbrowser Buttonclick
 
@Flex: Das pushen von eigenen Beiträgen nach so kurzer Zeit wird hier nicht so gerne gesehen. Falls Du nicht sofort eine Antwort erhälst, wirst Du Dich bis zum jeweils nächsten Tage gedulden müssen.

Flex 7. Apr 2004 21:52

Re: Webbrowser Buttonclick
 
hmm jo war nich so gemeint.. sorry! Sitz hier nur auf heissen kohlen :D
mfg
Flex

shmia 8. Apr 2004 08:37

Re: Webbrowser Buttonclick
 
Zitat:

Zitat von Flex
hmm jo war nich so gemeint.. sorry! Sitz hier nur auf heissen kohlen :D

Dann musst du schon ein bisschen Programmcode rüberwachsen lassen. :nerd:
Und aber Besten vorher etwas kommentieren, damit man sich gleich zurechtfindet.

Flex 8. Apr 2004 15:03

Re: Webbrowser Buttonclick
 
so hab die lösung jetzt gefunden.
leider nur per "durchprobieren", welches das gesuchte item ist.
ich wills euch nicht vorenthalten :-D :
Code:
WebBrowser1.OleObject.Document.forms.item(1).elements.item(44).click;
naja vielen dank für die anstrengungen,
Flex

Kinimod8 8. Apr 2004 15:08

Re: Webbrowser Buttonclick
 
Für mich sieht das so aus, als wenn der Code nciht mehr funktioniert wenn ein weiterer Button, Link oder ein weiteres Feld eingefügt würde. Bist du dir denn 100%ig sicher das die Seite immer gleichbleibt?

Flex 8. Apr 2004 18:20

Re: Webbrowser Buttonclick
 
jo eigentlich scho.. bis auf, dass der banner wechseln könnte..
aber ausm anderen forum habe ich jetzt den code:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  iDoc: IHtmlDocument2;
  i: integer;
  ov: OleVariant;
  iDisp: IDispatch;
  iColl: IHTMLElementCollection;
  InputButton: HTMLFormElement;
begin
  WebBrowser1.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
      for i := 1 to iColl.Get_length do
      begin
        iDisp := iColl.item(pred(i), 0);
        iDisp.QueryInterface(HTMLInputImage, InputButton);
        if Assigned(InputButton) then
          if InputButton.Name = 'savenewtopic' then
            InputButton.Click; // click it / klick es
      end;
    end;
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz