Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Login Simulieren (WebBrowser) (https://www.delphipraxis.net/162935-login-simulieren-webbrowser.html)

GouJetir 9. Sep 2011 18:03

Login Simulieren (WebBrowser)
 
Hallo,
ich möchte einen WebBrowser in meinem Programm haben,bei dem ich mich auf www.hotmail.de automatisch einlogge. Dazu will ich bei Edit1 meine E-Mail/Username und bei Edit2 das Passwort.

Habe bereits 30 Minuten gesucht,aber nicht viel gefunden,da diese ebenfalls irgendwelche Errors hatten usw.
Wie ich einen WebBrowser mache weiss ich,würde aber gut sein,wenn ihr die vollständigen Code von allem gebt.

Also:
Bei Edit1 = Username/E-Mail --- Edit2 = Passwort
Auf Login drücken
WebBrowser geht auf Hotmail.de
Gebt Daten ein (Edit1 und Edit2)
Loggt sich ein

Danke :)

API 10. Sep 2011 13:23

AW: Login Simulieren (WebBrowser)
 
Hallo, so kannst du einloggen:

Delphi-Quellcode:
Webbrowser1.OleObject.document.forms.item(0).elements.item('login').value := Edit1.Text;
Webbrowser1.OleObject.document.forms.item(0).elements.item('passwd').value := Edit2.Text;
Webbrowser1.OleObject.document.forms.item(0).elements.item('SI').click;

GouJetir 11. Sep 2011 12:05

AW: Login Simulieren (WebBrowser)
 
Danke für die Antwort.
Bei Hotmail.de funktioniert es perfekt,aber bei web.de und anderen Seiten funktioniert es nicht.

Ich frag mich auch,was das hier bedeuten soll:

Delphi-Quellcode:
Webbrowser1.OleObject.document.forms.item(0).elements.item('login').value := Edit1.Text;
Webbrowser1.OleObject.document.forms.item(0).elements.item('passwd').value := Edit2.Text;
Webbrowser1.OleObject.document.forms.item(0).elements.item('SI').click;
Was bedeutet das bei ('login'),('passwd') und ('SI').
Woher kommen die und muss ich die für die anderen Seiten ändern?
Bei Hotmail kommt der sofort zur loginbox aber bei web nicht und ich weiss nicht wie das geht.

Edit: Ich hab gerade ein Tutorial dafür gefunden,aber das geht immernoch nicht.Ich habe da jetzt ('username') ('password') und ('rv_dologon').
Den Error bekomm ich wenn ich den Button einloggen drücke:
Project XXX.exe raised exception class EAclassViolation with message 'Access violation at adress 0045C03C3 in module 'XXX.exe'.Read of address '00000000'.Process stopped.Use step or Run to continue.

Gruß
GouJetir

API 11. Sep 2011 12:25

AW: Login Simulieren (WebBrowser)
 
Zitat:

Zitat von GouJetir (Beitrag 1123286)
Woher kommen die und muss ich die für die anderen Seiten ändern?

Einfach mal den Quelltext der Webseite betrachten und schauen, um was für Felder es sich handelt und wie diese heißen.

Auf web.de ist der Login-Button ein Bild, muss dementsprechend auch anders angeklickt werden.

Delphi-Quellcode:
uses
 MSHTML;

procedure WB_ClickImage(WB: TWebbrowser; ImageSRC: string);
var
  iDoc: IHtmlDocument2;
  i: Integer;
  iDisp: IDispatch;
  iColl: IHTMLElementCollection;
  InputImage: HTMLInputImage;
begin
  if Assigned(WB.Document) then
  begin
    WB.Document.QueryInterface(IHTMLDocument2, iDoc);
    if Assigned(iDoc) then
    begin
      iDisp := iDoc.all.tags('INPUT');
      if Assigned(iDisp) then
      begin
        iDisp.QueryInterface(IHTMLElementCollection, iColl);
        if Assigned(iColl) then
        begin
          ImageSRC := AnsiUpperCase(ImageSRC);
          for i := 1 to iColl.Get_length do
          begin
            iDisp := iColl.item(Pred(i), 0);
            iDisp.QueryInterface(HTMLInputImage, InputImage);
            if Assigned(InputImage) then
            begin
              if Pos(ImageSRC, AnsiUpperCase(InputImage.src)) <> 0 then
              begin
                InputImage.Click;
              end;
            end;
          end;
        end;
      end;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Webbrowser1.OleObjec.document.forms.item(0).elements.item('username').value := Edit1.Text;
 Webbrowser1.OleObject.document.forms.item(0).elements.item('password').value := Edit2.Text;
 WB_ClickImage(Webbrowser1, 'btn_login.gif');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Webbrowser1.Navigate('https://produkte.web.de/freemail-webmail/');
end;

GouJetir 11. Sep 2011 12:39

AW: Login Simulieren (WebBrowser)
 
Okay aber jetzt bekomme ich:

Undeclared indentifier: WB_ClickImage

himitsu 11. Sep 2011 12:57

AW: Login Simulieren (WebBrowser)
 
Einige (viele) Seitenbeteiber haben halt etwas dagegen (oder es verstößt sogar gegen deren AGB) und bauen kleine Hindernisse ein.

Wobei z.B. bei eMails von web.de oder hotmail.de ja noch offizielle Wege gibt, wie z.B. POP3 :stupid:


Zitat:

WB_ClickImage
Was mag wohl die Fehlermeldung bedeuten?
Und nun rate mal, was man dagegen machen könnte. (PS: hier im Thread steht die Lösung)


PS: falls du den Code nicht verstanden hast:
Delphi-Quellcode:
document.forms.item(0).elements.item('login')
greift auf ein bestimmtes Element im "ersten" gefundenen Formular zu ... nur kann es mehrere Formulare auf eine Webseite geben, ebenso könnte das gesuchte Formular auch noch in einem Frame versteckt sein.
Da muß man dann natürlich, je nach Webseite die "Adresse", bzw. den Weg anpassen, sowie die Namen der Elemente, falls sie einen Namen haben.

Thom 11. Sep 2011 13:02

AW: Login Simulieren (WebBrowser)
 
Zitat:

Zitat von himitsu (Beitrag 1123295)
[...]oder es verstößt sogar gegen deren AGB[...]

...wobei nicht alles, was sich einige Leute vorstellen und der Welt als "AGB" präsentieren, auch eine gesetzliche Grundlage hat. :roll:

himitsu 11. Sep 2011 13:12

AW: Login Simulieren (WebBrowser)
 
Ich sagte nicht, daß man dafür gleich im Knast landen könnte.
Aber daß der Betreiber einen dann von seinem Angebot ausschließt, wäre mindestens eine passende Maßnahme/Reaktion.

Wobei es ja, wie gesagt, oftmal auch offizielle Wege gäbe, welche sich manchmal auch leichter/problemloser nutzen lassen. :stupid:

GouJetir 11. Sep 2011 13:18

AW: Login Simulieren (WebBrowser)
 
Juhu geschafft ich werde zu einem Pro-Programmierer ;) Ne Spaß - Danke :)

Edit: Noch ne Frage: Weil ja meine Seite eigentlich für Dshini sein soll,hab ich jetzt ein Problem beim absenden.

Die Seite auf der der sich einloggen soll ist: http://www.dshini.net/de/login

Bei Username hab ich:
Delphi-Quellcode:
Webbrowser1.OleObject.document.forms.item(0).elements.item('signin[username]').value := Edit1.Text;
und bei Passwort:
Delphi-Quellcode:
Webbrowser1.OleObject.document.forms.item(0).elements.item('signin[password]').value := Edit2.Text;
Aber ich find den Login-Button nicht.

GouJetir 11. Sep 2011 16:22

AW: Login Simulieren (WebBrowser)
 
Weiss das keiner oder geht es garnicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Seite 1 von 2  1 2      

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