Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Daten aus IE in Memo transferieren (https://www.delphipraxis.net/3610-daten-aus-ie-memo-transferieren.html)

eddy 20. Mär 2003 23:34


Daten aus IE in Memo transferieren
 
Hallo Leute,

ich habe eine Anwendung, bei der ich momentan zwischen IE und eigenem Programm hin-und-her springen muß.

Aktuelle Vorgehensweise:

im IE wird eine Seite mit diversen Daten geöffnet, in den Body geklickt,
mit Strg-A der Inhalt markiert, mit Strg-C in den Zwischenspeicher kopiert, anschließend wird per Mausclick in die eigene Anwendung gewechselt und per Click auf einen Button der Zwischenspeicher ausgelesen und von meinem Programm weiter verarbeitet.

Ich würde gern einiges davon automatisieren. Die Anwahl der Seite muß manuell von den vorgegebenen Button erfolgen, da sämtliche Versuche, die Seiten andersweitig anzuwählen gescheitert sind.

Der Click auf den Button in meiner Anwendung soll nun eine automatischen Rücksprung auf den IE bewirken, das Markieren der angezeigten Daten, das Kopieren in den Zwischenspeicher und den Rücksprung in meine Anwendung. Dort soll ein Click auf meinen Button simuliert werden, damit die im Zwischenspeicher befindlichen Daten verarbeitet werden.

Ist ein bischen viel Text, aber wie soll ich es kürzer erklären?

Vielen Dank im Voraus.
eddy

Garby 21. Mär 2003 09:42

Hallo,

kannst du keinen TWebbrowser in deiner Anwendung verwenden?

Garby

eddy 21. Mär 2003 10:47

Hallo Garby,

ich habe bisher noch gar nichts mit TWebBrowser gemacht. Nach Deiner Frage habe ich eine wenig experimentiert, bin aber nur begrenzt erfolgreich.

Die gewünschten Internetseiten erhalte ich in meinem WebBrowser angezeigt. Damit wäre die erste Hürde genommen. Mit welchen Anweisungen kann ich jetzt den Focus auf den Body setzen, alles markieren und in den Zwischenspeicher kopieren?

Eine Anweisung SelectAll habe ich nicht gefunden.

mfg
eddy

Garby 21. Mär 2003 11:50

Wenn du TWebbrowser verwendest musst du nicht mehr über die Zwischenablage gehen.
Wie man aus dieser Komponente den Text auslesen kann siehst du in diesem Beispiel.

Gruß
Garby

eddy 21. Mär 2003 13:19

Hallo Garby,

ich habe, Deinem Hinweis folgend, folgende Befehle probiert:
Code:
  aText := WebBrowser1.OleObject.Document.Body.InnerText;
  aHTML := WebBrowser1.OleObject.Document.Body.InnerHTML;
war aber nicht erfolgreich. aText bleibt leer und aHTML sieht auch nicht so aus wie das, was erscheint, wenn man "Quelltext anzeigen" anclickt.

Beim Auswahl-Menü erscheint nach der Eingabe des Punktes hinter WebBrowser1 OleObject bei mir nicht in der Auswahlliste. Was kann man statt Body noch alles eingeben?

mfg
eddy

Luckie 21. Mär 2003 15:51

Heißt deine WebBrowser-Komponente eventuell gar nicht WbBrowser1?

eddy 21. Mär 2003 16:31

Hallo Luckie,

Zitat:

Heißt deine WebBrowser-Komponente eventuell gar nicht WbBrowser1
Nein, sie heißt:
Code:
WebBrowser1: TWebBrowser;
Ein Schreibfehler liegt nicht vor, da würde der Compiler mir etwas von "Undefinierter Bezeichner" erzählen.

Code:
WebBrowser1.OleObject.Document.SelectAll;
funktioniert auch nicht. Da erhalte ich während der Laufzeit die folgende Fehlermeldung:
Zitat:

Die Methode 'SelectAll' wird vom Automatisierungsobject nicht unterstützt.
Unter Google habe ich auch nichts gefunden, was mich weiter bringt.

Hat noch jemand eine Idee?

mfg
eddy

eddy 21. Mär 2003 21:55

Hallo Leute,

Problem ist gelöst:

Code:
{
  angezeigte Internetseite (im wesentlichen mit Text) markieren
  markierten Text in den Zwischenspeicher kopieren
}

uses
  ActiveX, OleCtrls;

procedure TFMoney.SpeedButton3Click(Sender: TObject);
begin
  WebBrowser1.SetFocus;
  try
    WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER);
    WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_PROMPTUSER);
  except
  end;
  // Aktionen, die den Zwischenspeicher auslesen
end;



// damit das Kopieren über den Zw.speicher funktioniert:
initialization
  OleInitialize(nil);

finalization
  OleUninitialize;

end.
mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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