![]() |
login wie bei web.de o.ä.
hi
wie kann ich mich in delphi auf einer seite einloggen, sowie in opera mit strg+enter oder so? |
Re: login wie bei web.de o.ä.
Was für'ne Seite in Delphi???
Was passiert beim Opera wenn man Ctrl+Return drückt??? |
Re: login wie bei web.de o.ä.
also, bei opera wird dann automatisch per wand name+passwort eingegeben und der login-button gedrückt
ich wollte das mit TWebBrowser machen... |
Re: login wie bei web.de o.ä.
Zitat:
Zitat:
Ach du Schande! :mrgreen: TParadoxonException.Create(); --cut--- Ich denke mal du willst sowas machen das HTML-Formulare automatisch ausgefüllt werden? Da wüßte ich jetzt aus der Kalten auch nicht wie... |
Re: login wie bei web.de o.ä.
Hi glkbkk, Hi Thomas,
WAND ist der Passwort-manager von Opera. Bemüh mal die Suche zu diesem Thema, es gab schon ein oder zwei Beiträge, in welchen es ums automatische ausfüllen von Formularen im Webbrowser ging. Greetz alcaeus |
Re: login wie bei web.de o.ä.
Schick Deinen Browser auf die Reise.
Wenn er am Ziel ist, würde ich mal sendkeys.pas (uralt) oder was Ähnliches ausprobieren. mfg |
Re: login wie bei web.de o.ä.
|
Re: login wie bei web.de o.ä.
thx, ixch denk ich werd damit klarkommen...
|
Re: login wie bei web.de o.ä.
oder
![]() |
Re: login wie bei web.de o.ä.
hi
das sollte gehen:
Delphi-Quellcode:
Musst ihm einfach den WebBrowser und den 'Text' der eingetragen werden soll übergeben. Im Gegensatz zu dem quellcode von dem link der einen post vorher mitgeteilt wurde, funktioniert der code auch bei frames.
PROCEDURE FillYourInput(WebBrowser1:TWebBrowser; name,text:STRING);
VAR i,j,k: Integer; ovElements,ovFrames: OleVariant; BEGIN IF Webbrowser1.OleObject.Document.Frames.Length <> 0 THEN BEGIN ovFrames := Webbrowser1.OleObject.Document.Frames; FOR j := 0 TO (ovFrames.Length - 1) DO FOR k := 0 TO (ovFrames.Item(j).Document.Forms.Length - 1) DO BEGIN ovElements := ovFrames.Item(j).Document.Forms.Item(k).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).name = name)) THEN ovElements.Item(i).value := text; END; END ELSE BEGIN FOR j := 0 TO (WebBrowser1.OleObject.Document.forms.Length - 1) DO BEGIN ovElements := WebBrowser1.OleObject.Document.forms.item(j).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).name = name)) THEN ovElements.Item(i).value := text; END; END; END; Damit du dann auch noch den Button deiner Wahl klicken kannst kannste ja die funktion benutzen:
Delphi-Quellcode:
PROCEDURE ClickOnButton(WebBrowser1:TWebBrowser; BT_text:STRING);
VAR ovElements,ovFrames: OleVariant; i,j,k: Integer; BEGIN IF Webbrowser1.OleObject.Document.Frames.Length <> 0 THEN BEGIN ovFrames := Webbrowser1.OleObject.Document.Frames; FOR j := 0 TO (ovFrames.Length - 1) DO FOR k := 0 TO (ovFrames.Item(j).Document.Forms.Length - 1) DO BEGIN ovElements := ovFrames.Item(j).Document.Forms.Item(k).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).type = 'submit') AND (ovElements.Item(i).Value = BT_text)) THEN ovElements.Item(i).Click; END; END ELSE BEGIN FOR j := 0 TO (WebBrowser1.OleObject.Document.forms.Length - 1) DO BEGIN ovElements := WebBrowser1.OleObject.Document.forms.item(j).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.item(i).tagName = 'INPUT') AND (ovElements.item(i).type = 'submit') AND (ovElements.item(i).Value = BT_text)) THEN ovElements.item(i).Click; END; END; END; Prinzipiell ist es immer das gleiche schema. nach dieser Art kannste eigentlich fast alles lösen! mfg emploi |
Re: login wie bei web.de o.ä.
ich peil das nicht mkit den frames etc...
also ich will das bei web.de machen.... das is der code für die inputs.... wie mach ich das jetzt?
Code:
<label class="labelUsername" for="inpLoginUsername">WEB.DE Nutzer</label>
<input id="inpLoginUsername" type="text" name="username" /> <label class="labelPassword" for="inpLoginPassword">Passwort</label> <input id="inpLoginPassword" type="password" name="password" /> ah, neuer qt....auch angucken.... |
Re: login wie bei web.de o.ä.
also, ich hab jetzt den quelltext, abver es funzt nit
Delphi-Quellcode:
oben is der auszug aus der seite....
procedure TForm1.Button1Click(Sender: TObject);
begin FillYourInput(WebBrowser1,'username','glkgereon'); FillYourInput(WebBrowser1,'passwort','hallo'); end; was is das falsch achso, was nichrt funzt: es kommt nix....das edit bleibt einfach leer.... auch ein update hilft nix |
Re: login wie bei web.de o.ä.
ich tests mal eben.
-- hm sieht so aus das es an den <div> tags liegt das es deswegen nicht geht. muss mal gucken ob ich dafür ne lösung hinbekomme. --- liegt nicht an den divs, habn fehler drin gehabt. obwohls sonst irgendwie immer ging :) komisch. naja hier die überarbeitete version:
Delphi-Quellcode:
PROCEDURE ClickOnButton(WebBrowser1:TWebBrowser; BT_text:STRING);
VAR ovElements,ovFrames: OleVariant; i,j,k: Integer; BEGIN IF Webbrowser1.OleObject.Document.Frames.Length > 1 THEN BEGIN ovFrames := Webbrowser1.OleObject.Document.Frames; FOR j := 0 TO (ovFrames.Length - 1) DO FOR k := 0 TO (ovFrames.Item(j).Document.Forms.Length - 1) DO BEGIN ovElements := ovFrames.Item(j).Document.Forms.Item(k).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).type = 'submit') AND (ovElements.Item(i).Value = BT_text)) THEN ovElements.Item(i).Click; END; END ELSE BEGIN FOR j := 0 TO (WebBrowser1.OleObject.Document.forms.Length - 1) DO BEGIN ovElements := WebBrowser1.OleObject.Document.forms.item(j).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.item(i).tagName = 'INPUT') AND (ovElements.item(i).type = 'submit') AND (ovElements.item(i).Value = BT_text)) THEN ovElements.item(i).Click; END; END; END; PROCEDURE FillYourInput(WebBrowser1:TWebBrowser; name,text:STRING); VAR i,j,k: Integer; ovElements,ovFrames: OleVariant; BEGIN IF Webbrowser1.OleObject.Document.Frames.Length > 1 THEN BEGIN ovFrames := Webbrowser1.OleObject.Document.Frames; FOR j := 0 TO (ovFrames.Length - 1) DO FOR k := 0 TO (ovFrames.Item(j).Document.Forms.Length - 1) DO BEGIN ovElements := ovFrames.Item(j).Document.Forms.Item(k).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).name = name)) THEN ovElements.Item(i).value := text; END; END ELSE BEGIN FOR j := 0 TO (WebBrowser1.OleObject.Document.forms.Length - 1) DO BEGIN ovElements := WebBrowser1.OleObject.Document.forms.item(j).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).name = name)) THEN ovElements.Item(i).value := text; END; END; END; sollte jetzt klappen, also bei mir gings :) mfg emploi |
Re: login wie bei web.de o.ä.
Ich gehe mal davon aus, dass du die Felder nicht nur so zum Spaß ausfüllst, sondern dich einloggen willst. Und es scheint mir so, als willst du das nur bei web.de machen. Also sehen wir uns mal den Code vom Form an:
Code:
Unbenötigte Teile mal wegelassen.
<form action="https://login.web.de/intern/login/" method="post" name="fm">
<input type="hidden" name="service" value="freemail"/> <input type="hidden" name="server" value="https://freemail.web.de"/> <input type="hidden" name="onerror" value="https://freemail.web.de/msg/temporaer.htm"/> <input type="hidden" name="onfail" value="https://freemail.web.de/msg/logonfailed.htm"/> [..] <input id="inpLoginUsername" type="text" name="username" /> [..] <input id="inpLoginPassword" type="password" name="password" /> [..]<input class="submitButton" type="submit" name="rv_dologon" value="Login" />[..] [..] </form> Diese Seite: <form action="https://login.web.de/intern/login/" method="post" name="fm"> ruft er auf mit den parametern, die in den Feldern stehen. Zunächst haben wir ein paar versteckte eingabefelder, durch die wir ein paar statische Angaben bekommen. Das sind die Felder, bei denen "hidden" im type-Attribut steht. Dann kommen noch die Felder mit username und passwort. Beim klicken auf "submit" wird die im action-Attribut des Form-tags aufgerufen. Dabei werden dieser Seite Paramater übergeben. Der Teil hinter der I-Netdresse sieht so aus: ?[parameter1]=[Wert1]&[parameter2]=[Wert2]&[parameter3]=[Wert3] paramater sind jewals die Werte, die in den name-Atributen sind und die Werte, sind die Werte, die in den value-Attributen, bzw. der Usereingabe bestehen. Umgesetzt sied die Aufgerufene Seite also so aus:
Code:
ich denke du solltest in der Lage sein, die Adresse zu vervollständigen. Dann kannst du die entsprechende Seite direkt aufrufen.
https://login.web.de/intern/login/?service=freemail&server=https://freemail.web.de[..]
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr. |
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