AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Editfelder im Internet Explorer finden
Thema durchsuchen
Ansicht
Themen-Optionen

Editfelder im Internet Explorer finden

Ein Thema von Mazel · begonnen am 4. Jan 2008 · letzter Beitrag vom 5. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Editfelder im Internet Explorer finden

  Alt 4. Jan 2008, 14:39
Hallo,

ich weis, es gibt genügend Threads über das Finden von Handles, dennoch habe ich ein Problem, bei dem mir die anderen Beiträge nicht ganz so helfen konnten. Folgendes:
Ich verwende IE7 mit Registern. Auf einer Website gibt es sehr viele Editfelder, die ich suchen und deren Text ich ermitteln möchte. Nun komm ich aber einfach nicht an die Editfelder heran, das Problem wird wohl bei mir sein, in das Registerfenster hineinzukommen, doch wie stell ich es an?

Momentaner Code:
Delphi-Quellcode:
function EnumChildWindowsProc(hWnd: HWND; lParam: LPARAM): Boolean; stdcall;
var
  ClassName : array[0..255] of Char;
  Buffer : array[0..255] of Char;

begin
  GetClassName(hWnd, ClassName, SizeOf(ClassName)); // Klassenname ermitteln
  SendMessage(hWnd, WM_GETTEXT, SizeOf(Buffer), Integer(@Buffer)); // Text des Objektes ermitteln
  Form1.Memo1.Lines.Add(IntToStr(hWnd) + ' ' + ClassName + ' ' + Buffer);
  Result := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Wnd: HWND;

const
  CAPTION = ' TEXT... - Windows Internet Explorer';

begin
  Wnd := FindWindow(nil, CAPTION);
  Label1.Caption := IntToStr(Wnd);
  if Wnd <> 0 then EnumChildWindows(Wnd, @EnumChildWindowsProc, 0);
end;
Wnd gibt mir das Handle des Internet Explorers zurück, ist ok. Nun habe ich bei der Ausgabe geschaut, welcher Klassenname für Register passt und das ist TabWindowClass. Doch in der Klasse werder mir wenige unpassende Klassen ausgegeben. Auch mit dem Handle des Registers kommen die vielen Editfelder nicht zum vorscheinen.

Wie muss ich heran gehen, um wirklich den Inhalt der aktuellen Website mit FindWindow, EnumChildWindows bearbeiten zu können?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Editfelder im Internet Explorer finden

  Alt 4. Jan 2008, 18:56
Hallo,

wenn du Felder aus einer Webseite auslesen oder ausfüllen möchtest dann könntest du es mit dem TWebbrowser versuchen. Die Felder und Buttons innerhalb einer Webseite habe normalerweise kein Windowhandle. Wenn es kein großes Geheimnis ist, dann kannst du ja mal einen Link zur Webseite oder den Seitenquelltext posten.
Suche mal nach Hier im Forum suchenTWebbrowser ausfüllen oder auslesen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

Re: Editfelder im Internet Explorer finden

  Alt 4. Jan 2008, 19:13
Hallo,

und erstmal danke. Das ist natürlich schade, dass das nicht so geht wie ich es mir gewünscht habe.
Gut, es handelt sich bei der Website um eine Philatelie Seite. Dort kann man Fehl- und Dublettenlisten erstellen. Das heißt, man hat eine Tabelle in der man in Editfelder die Katalognummer, Menge, etc. eintragen kann. Folgender Link zeigt wie es nach erstellen aussieht:
Dublettenliste
Leider ist es noch nicht möglich, und ich weis nicht wie lange es noch dauern wird, diese Listen zu sortieren. Wenn man also bsp. die Katalognummer 345 hat, trägt man diese in der letzten Zeile ein, und dort bleibt sie leider, wird also nicht eingereiht. Momentan ist es auch nicht möglich eine Dublettenliste zu importieren, Fehllisten wiederum ja, und das ist schon längere Zeit der Fall.

Ich dachte mir, ich lese die Editfelder aus, speichere sie, sortiere die Liste und gebe die neue sortierte Liste wieder in die Editfelder aus und speichere das ganze neu ab.

Ich hoffe man konnte folgen .

Edit:
Es sieht im Gegensatz zu meiner Idee doch ziemlich einfach aus, wenn man mit TWebrowser arbeitet, warum ich da nicht gleich auf die Idee gekommen bin .
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Editfelder im Internet Explorer finden

  Alt 4. Jan 2008, 21:58
Die Tabelle kann man auch ohne den TWebbrowser ausgelesen.
Getestet mit den IE 6 ohne Register. Beim Programmstart wird die Seite einfach halber in den IE geladen.
Miniaturansicht angehängter Grafiken
dublettenliste_213.png  
Angehängte Dateien
Dateityp: zip dublettenliste_114.zip (8,7 KB, 16x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#5

Re: Editfelder im Internet Explorer finden

  Alt 4. Jan 2008, 23:05
Hallo,

ah, ich glaube, wir haben da uns ein wenig missverstanden. Der Link ist die Ausgabe, im folgenden Bild siehst du, wie es beim Erstellen aussieht. Den Teil kann ich sicher auch einfach auslesen, aber neue Werte setzen kann ich mit dem Code von dir nicht.

Also das Neusetzen und dann das Speichern.
Miniaturansicht angehängter Grafiken
liste_111.jpg  
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Editfelder im Internet Explorer finden

  Alt 4. Jan 2008, 23:47
Zitat von Mazel:
Werte setzen kann ich mit dem Code von dir nicht.
Das ist mir schon klar, hast du denn mal versucht Werte zuzuweisen?TrNode.all.tags('td').Item(l).innerText:= ...; Die Tabelle ausfüllen jedenfalls lässt sich zumindest damit bei mir.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#7

Re: Editfelder im Internet Explorer finden

  Alt 5. Jan 2008, 09:35
Ok, versucht habe ich das noch nicht, werde ich aber machen.
Ich nehme an, du willst darauf hinaus, dass man die Ausgabetabelle bearbeitet. Das könnte gehen, aber die kann ich nicht abspeichern, deshalb müsste es über das Formular laufen.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Editfelder im Internet Explorer finden

  Alt 5. Jan 2008, 11:16
Zitat von Mazel:
Ich dachte mir, ich lese die Editfelder aus, speichere sie, sortiere die Liste und gebe die neue sortierte Liste wieder in die Editfelder
Richtig, bis hierher müsste man eigentlich die Ein- oder Ausgabeliste auslesen oder bearbeiten können.
Du möchtest also die Liste danach auf dem Server abspeichern obwohl es dort gar nicht vorgesehen ist?
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#9

Re: Editfelder im Internet Explorer finden

  Alt 5. Jan 2008, 11:39
Doch, dies ist möglich. Du siehst auf dem Bild in meinem letzten Beitrag die grauen Editfelder. Das gehört zu einem Formular. Viel weiter unten, nicht auf dem Bild zu sehen, ist der Speichern Button.
Den Link, den du dir angeschaut hast, sollte nur zeigen, wie andere Benutzer meine Liste sehen, das das unter umständen eben nicht sortiert sein kann. Die User können die Liste natürlich nicht bearbeiten sondern nur anschauen.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: Editfelder im Internet Explorer finden

  Alt 5. Jan 2008, 11:42
Die Eingaben müssen doch irgendwo gespeichert werden, die Frage ist wo ? Wenn es eine datenbank ist, kannst Du doch durch eine Datenbankabfrage die Ausgabe sortiert ausgeben.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:34 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