Formular über Delphi Anwendung ausfüllen
Hallo, alle miteinander.
Vorneweg: Ich bin noch nicht lange im Bann der Programmiersprachen So, mein Problem ist folgendes: Durch ein TWebbrowser Modul, 2 TEdit's und einem Button sollen die Werte in den TEdits durch den Buttonklick an eine vorher definierte Website geliefrt werden, und 2 Felder auf dieser Website ausfüllen (Email und Passwort) Die Website ist in diesem Fall http://web.de/fm/
Delphi-Quellcode:
Die namen der Felder username, password und rv_dologon habe ich im Quellcode von http://web.de/fm/ (hoffentlich korekkt) ausgelesen.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Keyboard, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; WebBrowser1: TWebBrowser; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Document: OleVariant; begin WebBrowser1.Navigate('http://web.de/fm/'); //Website repeat Application.ProcessMessages; Sleep(0); until WebBrowser1.ReadyState = READYSTATE_COMPLETE; Document.all.item('username').Value := Edit1.Text; // Email/Nutzer Document.all.item('password').Value := Edit2.Text; // PASSWORT Document.all.item('rv_dologon').submit; // Login/Submit Funktion end; end. So nun tritt bei Testen folgendes Problem auf: "Ungältige Variantenoperation" meldet mir ein Delphi Fenster. Ich hab keine Ahnung woran das liegt... für jede Hilfe bin ich dankbar. |
Re: Formular über Delphi Anwendung ausfüllen
Dein "Document" wird nirgends zugewiesen?
Daher kann das auch nicht funktionieren |
Re: Formular über Delphi Anwendung ausfüllen
danke...... aber wie mach ich das denn?
sry für die blöde Frage ^^ |
Re: Formular über Delphi Anwendung ausfüllen
Delphi-Quellcode:
with WebBrowser1 do
begin OleObject.Document.GetElementByID('username').Value := Edit1.Text; OleObject.Document.GetElementByID('password').Value := Edit2.Text; OleObject.Document.forms.item(1).submit(); end; |
Re: Formular über Delphi Anwendung ausfüllen
Erstmal danke für die tolle Hilfe, jetzt klappts, ich habe noch eine Frage..... unzwar hab ich nun eine andere Website gewählt zum Login... die Bezeichnungen für die Felder Username und Password habe ich schnell gefunden... allerdings zeigt mir Delphi einen Fehler an der durch "OleObject.Document.forms.item(1).submit();" ensteht.
Anscheinend ist bei dieser Website dieSubmit funktion anders.... wie finde ich raus wie/wo im Quellcode diese Bezeichnet ist? Fehlermeldung: Zugriffsverletztung bei Adresse 004AFD7D in Modul 'Project2.exe'. Lesen von Adresse 00000000. |
Re: Formular über Delphi Anwendung ausfüllen
Vielleicht ist es ja nicht die 1. Form...
Falls die Form einen Namen hat (siehe Quelltext der Seite), kannst du die Form auch anhand seines Namens abschicken:
Delphi-Quellcode:
function WB_SubmitFrom(WebBrowser: TWebBrowser; const FormName: string): IHTMLFormElement;
var forms: IHTMLElementCollection; Doc2: IHTMLDocument2; begin if Assigned(WebBrowser.Document) and (Succeeded(WebBrowser.Document.QueryInterface(IHTMLDocument2, Doc2))) then begin forms := Doc2.Forms as IHTMLElementCollection; Result := forms.Item(FormName,'') as IHTMLFormElement; Result.Submit; end; end; |
Re: Formular über Delphi Anwendung ausfüllen
Ah, danke es hatte den Form Wert 0 ^^
Nun hab ich eig. alles was ich wollte (An dieser Stelle: Vielen, vielen dank toms für deine Hilfe) Allerdings würde ich jetzt gern wenn sich die person eingeloggt hatt, das dann automatisch ein bestimmter wert abgelesen wird, der Wert ist in diesem fall ein Datum und eine vierstellige Zahl! Im Quellcode der Website sehe ich das der Wert einmal eingetragen ist in <div class="boxx"> ..... .... .... <span class="in">Gültig: </span> <span class="green">09.12.2011 11:38</span> (dieser Wet ist logischerweise bei jedem Eingeloggtem Account unterschiedlich) Allerdings stehen noch andere unwichtige Werte in der class "in". Wie lese ich diese Werte aus, bzw. mit welchem Delphi Befehl lass ich diese Werte in einem TLabel oder einer TListBox anzeigen nachdem jmd. eingeloggt wurde?? e: bei der Vorherigen Website von EWb.de würde ich dann vergleichsweise die anzahl der emails nehmen! kann mir jmd. helfen? |
Re: Formular über Delphi Anwendung ausfüllen
Keiner eine Idee? =/
|
Re: Formular über Delphi Anwendung ausfüllen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 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