AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Formular über Delphi Anwendung ausfüllen
Thema durchsuchen
Ansicht
Themen-Optionen

Formular über Delphi Anwendung ausfüllen

Ein Thema von plapperkeks · begonnen am 7. Feb 2010 · letzter Beitrag vom 8. Feb 2010
Antwort Antwort
plapperkeks

Registriert seit: 7. Feb 2010
5 Beiträge
 
#1

Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 18:44
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:
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.
Die namen der Felder username, password und rv_dologon habe ich im Quellcode von http://web.de/fm/ (hoffentlich korekkt) ausgelesen.

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.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 18:55
Dein "Document" wird nirgends zugewiesen?

Daher kann das auch nicht funktionieren
Lars
  Mit Zitat antworten Zitat
plapperkeks

Registriert seit: 7. Feb 2010
5 Beiträge
 
#3

Re: Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 19:12
danke...... aber wie mach ich das denn?
sry für die blöde Frage ^^
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 19:17
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;
Thomas
  Mit Zitat antworten Zitat
plapperkeks

Registriert seit: 7. Feb 2010
5 Beiträge
 
#5

Re: Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 19:45
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.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 19:50
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;
Thomas
  Mit Zitat antworten Zitat
plapperkeks

Registriert seit: 7. Feb 2010
5 Beiträge
 
#7

Re: Formular über Delphi Anwendung ausfüllen

  Alt 7. Feb 2010, 20:26
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?
  Mit Zitat antworten Zitat
plapperkeks

Registriert seit: 7. Feb 2010
5 Beiträge
 
#8

Re: Formular über Delphi Anwendung ausfüllen

  Alt 8. Feb 2010, 20:06
Keiner eine Idee? =/
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Formular über Delphi Anwendung ausfüllen

  Alt 8. Feb 2010, 20:19
Zitat von plapperkeks:
Keiner eine Idee? =/
Doch, Googeln oder in der DP suchen.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:47 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