Entwickler-Ecke

Internet / Netzwerk - Online Tool


Die Brotmafia - So 25.12.05 00:32
Titel: Online Tool
Also, ich habe mir heute was neues vorgenommen:

Ich würde gerne ein Tool coden welches folgende Dinge kann:

Auf einer Page einloggen, wie z.B. freenet.de, mit Benutzername und Passwort.
Danach ein auf ein Feld in der Page eingehen, z.B. email schreiben. (Eventuell auch sms, *g*)
Daraufhin den Text, welchen man in ein Memo schreibt, in das Email Feld eintragen. (Oder eben Sms Feld)
--> Daraufhin auf einen der Werbebanner unten klicken, automatisch.

Von dem ganzen soll man nur mitkriegen, dass man sich einloggt, dann einen Text schreibt und auf absenden klickt, die ganzen Sachen wie auf der page einloggen, SmS Feld öffnen und Text vom Memo dort eintragen sollen automatisch passieren.



Welche Komponenten brauch ich dazu oder welche sollte ich am besten verwenden?

thnx schon im Vorraus!


Moderiert von user profile iconChristian S.: Topic aus Sonstiges verschoben am So 25.12.2005 um 14:50


F34r0fTh3D4rk - So 25.12.05 01:14

komponenten brauchst du keine, beschäftige dich ein wenig mit der windows api, dann solltest du es hinbekommen ;)


Muffin - So 25.12.05 01:28

Deine Idee hört sich nicht ganz sauber und legal an :) Willst du eMail Spam revolutionieren?


Die Brotmafia - So 25.12.05 01:53

Ne, ich will nur die Free-Sms von meinem Account nicht versenden müssen indem ich mich auf der Page einlogge und dann auf das Sms-Symbol klicke, sondern ich will einfach ein Programm machen dass sich automatich einloggt wo ich dann nur noch losschreiben muss ;)

Ach ja, der Post mit dem "beschäftige dich mit der Windows Api" hat mir leider auch nicht viel genützt, wo soll ich da anfangen? Giebts da n gutes Tutorial zur Windows Api? Die Forensuche hat's bei mir nicht gebracht, nur Sachen die mich nicht angehen...


Delete - So 25.12.05 06:28

Suche nach Suche in: Delphi-Forum, Delphi-Library AUSF?LLEN INTERNET EXPLORER. Und warum postets du nicht in der Internet-Sparte?


Die Brotmafia - So 25.12.05 14:59

Jetzt hab ich als Beispiel mal den Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;
  //no form on document
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
  begin
    Exit;
  end;
  //count forms on document
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      try
        //when the fieldname is found, try to fill out
        if FormItem.Item(j).Name = FieldName then
        begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
      except
        Exit;
      end;
    end;
  end;
end;



So, jetzt würde ich damit gerne auf z.b. freenet.de gehen und dann meinen Username u. Passwort eintragen zum e-mail abrufen, nun Probier ich das z.b. mit:


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button3Click(Sender: TObject);
 begin
  FillForm(TWebBrowser; 'TestField'15)
end;


aber dann kommen natürlich mal wieder "incompatible" types und so, kann jemand nem kleinen neuling wie mir erklären wie ich die funktion am besten nutze oder Tipps für bessere Functions geben?

Danke!!

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


Andreas L. - So 25.12.05 15:43

Zitat:


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button3Click(Sender: TObject);
 begin
  FillForm(TWebBrowser; 'TestField'15)
end;


aber dann kommen natürlich mal wieder "incompatible" types und so, kann jemand nem kleinen neuling wie mir erklären wie ich die funktion am besten nutze oder Tipps für bessere Functions geben?

Danke!!


Ich denke der Code sollte so lauten:


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button3Click(Sender: TObject);
 begin
  FillForm(WebBrowser1, 'TestField''15');
end;


Um das ganze für freenet zu optimieren musst du erstmal herausfinden wie der elementname des emailfeldes auf freenet ist. Kannste dort im Quelltext nachsehen...

Noch als kleine Erklärung:
der erste Parameter von FillForm muss eine Webbrowser komponente sein welche auf deinen Forumlar ist. z. B. Webbrowser1, der zweite ist das Feld welches ausgefüllt werden soll, der dritte ist der Wert der ins Feld eingetragen werden soll.

Bye

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


Die Brotmafia - So 25.12.05 16:56

Also, hier wieder ein paar Fragen:

Ich hab jetzt den TWeb Browser, man sieht aber nix in dem Browser, was muss ich machen damit eine Startseite angezeigt wird und wie kann ich diese bestimmen?

Wie finde ich z.B. bei google heraus wie ich das Element zum Eintragen der Texte, die man suchen will, heist? Hab im Quelltext nachgeschaut, da steht was von "Google-Suche", soll ich dass dann da eingeben?


Quelltext
1:
FillForm(WebBrowser1, 'Google-Suche', '15');                    


Danke!!


F34r0fTh3D4rk - So 25.12.05 17:16

Google Suche: http://www.google.de ;)

oder: Suche in: Delphi-Forum TWEBBROWSER


Andreas L. - So 25.12.05 17:21

Hi,
ein bisschen HTML-Kenntnisse solltest du schon haben wewnn du so ein Programm schreiben willst. input ist in html ein element. name ist der name also die Bezeichnung für das element. (siehe http://www.selfhtml.de.vu).

Google.de Quellcode
1:
<input maxlength=2048 size=55 name=q value="" title="Google-Suche">                    


Also ist der Name des Feldes bei Google.de "q". Dein Code muss also lauten:


Delphi-Quelltext
1:
FillForm(WebBrowser1, 'q''Mein Such-Text');                    


So wird "Mein Such-Text" in den Eingabefeld auf der google-Seite eingetragen. Ob dieses Formular (jedes Eingabeelement das auf normalen Weg verarbeitet werden soll wird in HTML in ein Formular (<form></form>) gesetzt) auch gleich abgesendet wird, weiß ich nicht.

Zu einer Seite kommst du im Webbrowser so:

Delphi-Quelltext
1:
webrowser1.navigate('http://www.google.de');                    


Hoffe das ich dir helfen konnte....

bye


Flohzirkus94 - So 25.12.05 17:44

:wink: wie wäre es denn ein programm das nauf die url zugreift??


Die Brotmafia - So 25.12.05 18:01

Hmmm, das geht jetzt alles, danke schonmal soweit, ihr wart mir echt eine große Hilfe!!

Eins noch:

Giebts n Befehl damit der Browser dann auf nen bestimmten Button klicken kann?


also wirklich nochmal fett danke, ihr habt mir wirklich geholfen!!


Andreas L. - So 25.12.05 18:21

user profile iconDie Brotmafia hat folgendes geschrieben:
Hmmm, das geht jetzt alles, danke schonmal soweit, ihr wart mir echt eine große Hilfe!!

Eins noch:

Giebts n Befehl damit der Browser dann auf nen bestimmten Button klicken kann?


also wirklich nochmal fett danke, ihr habt mir wirklich geholfen!!



Von Swissdelphicenter.ch
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
// If there is only one button, you can do something like:

WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click;

// This will do a click on the first element of the first <FORM>, where an
// element is either <INPUT>, <SELECT> or <TEXTAREA>.


// If there is more than one button, you can do something like:

procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'INPUT'and
      (ovElements.item(i).type = 'SUBMIT'and
      (ovElements.item(i).Value = 'Recent Charges'then
      ovElements.item(i).Click; 
end;


Org. URL: http://www.swissdelphicenter.ch/de/showcode.php?id=1604


Die Brotmafia - So 25.12.05 18:52

Hmpf, sorry Leute dass ich so dumm bin und ihr euch irgendwann über mich aufregt, aber:


Delphi-Quelltext
1:
WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click;                    


Hab ich ausprobiert bis



Delphi-Quelltext
1:
WebBrowser1.OleObject.Document.forms.item(0).elements.item(12).click;                    


Davon gieng nix, da kam immer irgend so nen "Acces Violation error" blabla...


Dann das da:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'INPUT'and
      (ovElements.item(i).type = 'SUBMIT'and
      (ovElements.item(i).Value = 'Recent Charges'then
      ovElements.item(i).Click; 
end;


Hab ich auch ausprobiert, habs einfach so gemacht, damit's auch ja funzt:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'OK!'then
      ovElements.item(i).Click; 
end;


Wobei der Name des Buttons im Quelltext "OK!" heist....

Was mach ich falsch, wie krieg ich das teil ans laufen??

Danke!!

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt


Andreas L. - So 25.12.05 20:06

Also,

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'INPUT'and
      (ovElements.item(i).type = 'SUBMIT'and
      (ovElements.item(i).Value = 'Recent Charges'then
      ovElements.item(i).Click; 
end;


tagname muss input heißen, type muss bei einen abschicken-button submit heißen (bei eine reset-button muss der type reset sein) und value muss diesmal nicht der name vom html-element sein sondern das value (der wert :-)) Du darfst da nicht einfach was vom quellcode weglassen. Wenn du den Google-Suche-Button drücken möchtest muss der Code also so lauten:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'INPUT'and
      (ovElements.item(i).type = 'SUBMIT'and
      (ovElements.item(i).Value = 'Google-Suche'then
      ovElements.item(i).Click; 
end;



Google.de Quelltext
1:
<input type=submit value="Google-Suche" name=btnG>                    


Falls das nicht gehen sollte probiers mit so:

Ungetestet
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'INPUT'and
      (ovElements.item(i).type = 'SUBMIT'and
      (ovElements.item(i).name= 'btnG'then
      ovElements.item(i).Click; 
end;


Die Brotmafia - So 25.12.05 20:23

Danke dafür!!
Die Sache ist nur leider so:

Das Teil ist ein Button!! (cry)


Quelltext
1:
<input type="image" src="/mitglieder_center/diverses/login/frn_DE/sourcen/button_ok.gif" width="45" height="22" border="0" tabindex="3" name="OK!" alt="">                    


Es giebt keine Value...

Das ganze Teil giebts hier zu besichtigen:

http://e-tools.freenet.de/login.php3

Ich will dass er auf den Ok button drückt, im Quelltext heist er "OK!", aber das geht natürlich nicht ....

Aber danke @ Onlinehome dass du dir die Zeit für mich nimmst!


Andreas L. - So 25.12.05 20:35

Ein bisschen Eigeninitative bitte ;-)

Ich habe dir doch das alles ganz gut erklärt....

Also:
Der tagName muss weiterhin input bleiben, der type muss image sein und das value wird in name umgewandelt und mit OK! bestückt :-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if (ovElements.item(i).tagName = 'INPUT'and
      (ovElements.item(i).type = 'IMAGE'and
      (ovElements.item(i).name= 'OK!'then
      ovElements.item(i).Click; 
end;


Evtl. noch Groß- und Kleinschreibung von tagname, type und name beachten/ändern und fertig!


Die Brotmafia - So 25.12.05 21:10


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button5Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).tagName = 'INPUT') and
      (ovElements.item(i).type = 'IMAGE') and
      (ovElements.item(i).name= 'OK!') then
      ovElements.item(i).Click; 
end;


Genauso hab ichs!

Input ist ja richtig, das ganze ist ein Image und außerdem ist der Name davon "OK!", also was mach ich da bitte noch falsch?

(Es geht nicht :((()


F34r0fTh3D4rk - So 25.12.05 21:12

versuch mal statt IMAGE -> image zu nehmen ;)

Quelltext
1:
<input src="login.php3_dateien/button_ok.gif" tabindex="3" name="OK!" alt="" border="0" height="22" type="image" width="45">                    

input klein kannst du ja auch mal versuchen, ich weiß nicht, wiesehr das egal ist, in html ansich eigentlich schon ;)


Die Brotmafia - So 25.12.05 21:14

Hm, geht auch nicht

:(

EDIT: Es geht, jetzt gehts!!!!


Edit2: Sry, geht doch nicht, hatte nur selber auf ok geklickt :(

....

Irgendwelche Tipps noch?


F34r0fTh3D4rk - So 25.12.05 21:16


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button5Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if  (ovElements.item(i).name= 'OK!'then
      ovElements.item(i).Click; 
end;


und so ?


Andreas L. - So 25.12.05 21:23

Hast du mit den Webbrowser auch zuvor auf die Login-Seite von freenet navigiert?

Delphi-Quelltext
1:
webbrowser1.navigate('http://kjhdsakjsadkh.net');                    


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


Die Brotmafia - So 25.12.05 21:30


Delphi-Quelltext
1:
WebBrowser1.Navigate('http://e-tools.freenet.de/login.php3' );                    


Hab ich gemacht, also er ist schon auf der Seite ....


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button5Click(Sender: TObject);
var 
  ovElements: OleVariant; 
  i: Integer; 
begin 
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements; 
  for i := 0 to (ovElements.Length - 1do
    if  (ovElements.item(i).name= 'OK!'then
      ovElements.item(i).Click; 
end;


Auch das geht leider nicht ....

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt



Edit: Kann mir echt keiner helfen? Es kann doch nicht so schwer sein, dem TWebBrowser zu sagen, er soll auf ein Image klicken!!


F34r0fTh3D4rk - Mo 26.12.05 12:56

anscheinend doch, versuch mal nach anderen kriterien, als dem namen auszuwählen


Die Brotmafia - Mo 26.12.05 15:36

Hm, jetzt hab ich statt name "width" eingegeben, und den dazugehörigen Wert... (45), geht aber immer noch nicht!

Irgendwas funktioniert da nicht...

Irgendwelche Lösungsansätze?


Andreas L. - Mo 26.12.05 15:45

Probier mal das:
http://www.swissdelphicenter.ch/de/showcode.php?id=1645


SwissDelphiCenter.ch Code
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
{
 If you have a webpage with a Form on it, but the submit - button is an image,
 you can use this code (using a TWebBrowser)
}


{
 Falls du eine Webpage mit einem Formular hast,
 bei welchem der Submit-Knopf ein Bild ist,
 dann kannst du diesen Code benutzen (sowie ein TWebBrowser)
}


uses
  MSHTML;

var
  iDoc: IHtmlDocument2;
  i: integer;
  ov: OleVariant;
  iDisp: IDispatch;
  iColl: IHTMLElementCollection;
  InputImage: HTMLInputImage;
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, InputImage);
        if Assigned(InputImage) then
        begin
          if InputImage.Name = 'submit' then
          // if the name is submit / falls der name submit lautet
          begin
            InputImage.Click;  // click it / klick es
          end;
        end;
      end;
    end;
  end;
end;

// 2.

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Word;
  Document: IHtmlDocument2;
  str: string;
begin
  // Schleife über alle Bilder im Webbrowser
  for i := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
  begin
    Document := WebBrowser1.Document as IHtmlDocument2;
    // URL auslesen
    Str := (Document.Images.Item(i, 0as IHTMLImgElement).Href;
    // Dateiname des Bildes überprüfen
    if Pos('submit_icon.gif', str) <> 0 then
    begin
      ((Document.Images.Item(i, 0as IHTMLImgElement) as IHTMLElement).Click;
    end;
  end;
end;


Das hervorgehobene durch den Dateinamen des OK!-Buttons ersetzen...


Die Brotmafia - Mo 26.12.05 16:38


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
uses
  MSHTML;

var
  iDoc: IHtmlDocument2;
  i: integer;
  ov: OleVariant;
  iDisp: IDispatch;
  iColl: IHTMLElementCollection;
  InputImage: HTMLInputImage;
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, InputImage);
        if Assigned(InputImage) then
        begin
          if InputImage.Name = 'submit' then
          // if the name is submit / falls der name submit lautet
          begin
            InputImage.Click;  // click it / klick es
          end;
        end;
      end;
    end;
  end;
end;



1000 Danke @ onlinehome und die anderen, aber vor allem dir!! Hast mir echt geholfen und Geduld mit meiner Dummheit gehabt *g*

Es geht!!

So, mein nächstes prob ist jetzt, ich würde gerne dass alles in einem Schritt geschieht (Website laden, Username/Pw eingeben und auf ok klicken), das würde ja auch gehen, aber wenn ich das alles in eine einzige procedure reinmach dann versucht er natürlich auf ok zu klicken noch bevor die seite geladen ist bzw. die Daten zu früh einzugeben.
Giebts da irgend nen Befehl damit die Anwendung einfach nach dem Befehl Website laden kurz ne Sekunde wartet und dann die Daten eingiebt, wieder ne Sekunde wartet und dann auf ok klickt?

Habs schon mit sleep(1000); und so probiert, aber ist ja klar dass das nicht geht da dann ja die ganze Anwendung ne Sekunde lang pausiert...

Nochmals danke, ich hab mein Ziel schon fast erreicht ;-)



Edit: Noch n kleines Prob:

ich will den Browser zu "javascript:scroll_popup('/messages/mail_sms_send.html',480,725);"

Navigaten aber das Problem ist jetzt, dass in der adresse " ' ' " enthalten sind die Delphi irgendwie durcheinander bringen, wie kann ich das lösen?

Danke!!

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt


Andreas L. - Mo 26.12.05 17:23


Quelltext
1:
javascript:scroll_popup('/messages/mail_sms_send.html',480,725);                    

Evtl. die ' durch " ersetzen. Aber ob der Webbrowser Javascript über navigate aufrufen bzw. verarbeiten kann steht auch in den sternen. Einfach mal probieren.

Und den anderen Code mit try..finally Blöcken ausstatten. z. B.


Ungetestetes Beispiel
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
begin
try
 webbrowser1.navigate('fdgfdg');
finally
 try
  //formular ausfüllen: username & password
 finally
  //submit-image drücken
 end;
end;
end;


Die Brotmafia - Mo 26.12.05 17:45

Omg, der Webbrowser scheint das Javascript nicht über Navigate aufrufen zu können, was mach ich jetzt?

Edit: Das mit den Try-Finally Blöcken hab ich mal anders gelöst, keine Ahnung ob das ne gute Variante war:

Hab 5 timer reingemacht, der erste zum Seite laden braucht 6 Sekunden, danach deaktivert er sich und aktiviert den nächsten Timer, und so weiter halt *g*

Alles was noch fehlt ist wie ich das dumme Sms-Fenster öffne das ja Javascipt ist...


Andreas L. - Mo 26.12.05 18:13

Mit den Timern ist zwar etwas umständlich tut aber auch seinen Zweck...

Wegen den SMS-Fensters:
Mach ein neues Formular und klopp nen webbrowser drauf. wieder das ganze anmelde zeugs (also der code von vorhin) und dann webbrowser1.navigate(rootdir+'/messages/mail_sms_send.html');
rootdir ist eine string-variable mit den server root pfad, z. B.

Quelltext
1:
http://www.freenet.de                    

Welchen Pfad du als rootdir definieren musst erfährst du wenn du auf die von dir genannte url gehst, dich dort anmeldest und den pfad welcher dann in der adressleiste steht kopierst, natürlich ohne den dateinamen und das abschließende /. Z. B. http://login.freenet.de/bla/irgendwas.php muss im string so stehen: http://login.freenet.de/bla

Verständlich?


Die Brotmafia - Mo 26.12.05 18:21

Also, die Adresse wo der Button zum Sms versenden steht, ist

Quelltext
1:
http://office.freenet.de/mms/index.html                    


Also muss ich dann jetzt


Quelltext
1:
webbrowser1.navigate('http://office.freenet.de/mms/index.html'+'/messages/mail_sms_send.html');                    


oder was?

Wenn ich auf Sms schreiben klicke seh ich nämlich keine Url, ist ja auch nur n Php Script....


jakobwenzel - Mo 26.12.05 18:24

Du musst den Pfad nehmen, und keine Datei, also

Delphi-Quelltext
1:
webbrowser1.navigate('http://office.freenet.de/mms/index.html'+'/messages/mail_sms_send.html');                    


Die Brotmafia - Mo 26.12.05 18:33

Hm, wenn ich als Pfad


Quelltext
1:
http://office.freenet.de/mms/index.html/messages/mail_sms_send.html                    

eingebe, kommt trotzdem nur das standard fenster wo ich auf den Button klicken muss,
irgendwie brauch ich anscheinend das dumme java script....


Andreas L. - Mo 26.12.05 18:36

user profile iconDie Brotmafia hat folgendes geschrieben:
Hm, wenn ich als Pfad


Quelltext
1:
http://office.freenet.de/mms/index.html/messages/mail_sms_send.html                    

eingebe, kommt trotzdem nur das standard fenster wo ich auf den Button klicken muss,
irgendwie brauch ich anscheinend das dumme java script....


Au, das tut weh.....

So ist es richtig:

Quelltext
1:
http://office.freenet.de/mms/messages/mail_sms_send.html                    


Die Brotmafia - Mo 26.12.05 19:03

...


Quelltext
1:
http://office.freenet.de/mms/messages/mail_sms_send.html                    



Not Found
The requested URL /mms/messages/mail_sms_send.html was not found on this server.


Soviel dazu ^^


Andreas L. - Mo 26.12.05 19:41

user profile iconDie Brotmafia hat folgendes geschrieben:
...


Quelltext
1:
http://office.freenet.de/mms/messages/mail_sms_send.html                    



Not Found
The requested URL /mms/messages/mail_sms_send.html was not found on this server.


Soviel dazu ^^


Dann hast du uns die falsche url genannt. leider habe ich keinen freenet-account, sonst hätte ich mal nachgeschaut!


Die Brotmafia - Mo 26.12.05 20:09

Doch, das ist sicher die richtige Url!!

http://home.arcor.de/brotmafia/Delphi/Clipboard01.jpg

http://home.arcor.de/brotmafia/Delphi/Clipboard03.jpg


Hoffe ihr könnt mir noch helfen, ansonsten wäre die Arbeit der letzten 5 Stunden umsonst gewesen

:cry:


Andreas L. - Mo 26.12.05 20:19

Du könntest mal den Seiten-Quelltext der Freenetseite hier als Anhang hochladen. Dann kann ich mal schauen was das JavaScript alles macht. OK?


Die Brotmafia - Mo 26.12.05 20:33

Bitte sehr, und nochmals danke für deine Mühe!!


Andreas L. - Mo 26.12.05 21:37

Also,

freenet.de JavaScript
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function scroll_popup(url,xw,yw) 
{
  var wintop  = (screen.height - yw) / 2;
  var winleft = (screen.width - xw) / 2;
  jetzt = new Date();
  //var wintitle = jetzt.getTime();
  var wintitle = "scroll_popup";
  var params = "resizable,scrollbars,height=" + yw + ",width=" + xw + ",left=" + winleft + ",top=" + wintop;
  pop1 = window.open(url,wintitle,params);
}


Das ist der JavaScript-Code für das SMS-Popup. So wie ich sehe übergibt das Script das aktuelle Datum/Zeit als Fenstertitel. Eine Zeile darunter wird der Fenstertitel auf "scroll_popup" festgelegt. Hmm... Ich bin nicht so der JavaScript Profi! Was wird da mit der Variable pop1 gemacht?

Mir fällt nicht ein wieso dir da ein ungültiger Pfad gezeigt wird...

Aber du könntest mal einen Code suchen bzw. den für den Submit-Image zu modifizieren und dann auf der page einen klick auf den sms button zu machen...


Die Brotmafia - Mo 26.12.05 22:49

Hmmm, ich weis auch nicht wirklich warum das nicht klappt, jedenfalls, auch wenn ich einfach so im TWebBrowser auf ok klicke geht es nicht, ich denke mal der unterstützt kein java script, ich weis grad echt nicht was ich da machen soll :/


Andreas L. - Di 27.12.05 19:49

Der TWebbrowser unterstützt schon JavaScript. TWebbrowser ist quasi eine ins Programm eingebettete Internet Explorer Instanz. Öffne mal den normalen Intenet Explorer (Start > Ausführen > iexplore "OK") und schalte den PopUp-Blocker aus und füge die freenet-Seite zu den Vertrauenswürdigen-Seiten hinzu...

Dann sollte der Klick im TWebbrowser auf den SMS-Button gehen, Denke ich...!


Die Brotmafia - Di 27.12.05 21:01

Hmm, das find ich jetzt mal echt komisch:

Mit dem Inter Explorer gehts, wenn ich ganz normal Sms schreibe.

So, jetzt probiere ich das gleiche mit meinem Freenet Clienten: Geht nicht!

Also, jetzt kommts aber:

Ich öffne den Internet Explorer und logge mich mit irgend nem Freenet Account ein wo noch Sms frei sind.
Dann öffne ich den Freenet Client, logge mich mit nem andren Account ein, und siehe da:
Das Sms schreiben funktioniert!

Woran liegt das, wie kann ich machen dass ich NICHT den browser im hintergrund geöffnet haben muss?


Edit: Wenn ich mich dann im Internet Explorer wieder auslogge geht auch der Freenet Client nicht mehr...

Kann es sein, dass wenn man mit dem Twebbrowser ne Url öffnet dass der sich dann automatisch ausloggt oder so?

Also geht nicht mehr heist, dass sobald ich auf sms schreiben klicke, dass er dann nicht die SmS-schreiben page öffnet sondern die normale Freenet Page, wo man login namen und so eingeben muss...


Andreas L. - Di 27.12.05 21:58

Ich habe keine ahnung.............

Evtl. hängt das mit den Cookies zusammen. Lösch die mal und probier es nur mit deinen freenet client!


Die Brotmafia - Mi 28.12.05 00:50

Kk, habbich gemacht, geht immer noch nicht...
Der Webbrowser scheint irgendwie ein Problem damit zu haben...


Andreas L. - Mi 28.12.05 20:20

Tut mir leid, ich weiß echt nicht weiter...


Die Brotmafia - Mi 28.12.05 20:24

Ist ok, kein Problem *g*

Ich stell das Projekt jetzt ein, ich hab keine Lust das ganze noch mal auf nem andren WebBrowser umzusetzen, was ich ja versuchen könnte...

Trotzdem hat mir die Sache einiges gebracht, ich kann wieder ein bisschen besser Delphi, und hab ein bisschen mehr wissen in Sachen TWebBrowser *g*

Danke @ alle für eure hilfe, aber vor allem @ onlinehome der sich ja wirklich viel Zeit für mich genommen hat, ohne den wär ich lange nicht so "weit" gekommen *g*

Mal guggen was ich jetzt mach, vielleicht nen matrix Chat oder sowas in der Art, mal schauen ^.^

Thnx for all bis bald

Brotmafia


Andreas L. - Mi 28.12.05 20:42

user profile iconDie Brotmafia hat folgendes geschrieben:

Danke @ alle für eure hilfe, aber vor allem @ onlinehome der sich ja wirklich viel Zeit für mich genommen hat, ohne den wär ich lange nicht so "weit" gekommen *g*


Danke und gern geschehen 8-)


Andreas L. - Fr 30.12.05 15:25

Mir fällt noch was ein. Im Objekt-inspektor die Eigenschaft RegisterAsBrowser vom webbrowser auf TRUE stellen. Vielleicht hilft das ja...