![]() |
Markierten Text aus Webbrowser auslesen
Hi,
ich würde gerne folgendes realisieren. Ich habe mein Programm am Laufen und würde diesem gerne Daten aus einem Browser zur Verfügung stellen. Das heikle an der Sache ist, dass diese Daten, die direkt aus dem Browser kommen, nicht manipuliert werden dürfen. Beispiel: Im Browser steht: Max Mustermann, Musterstraße 1, 12345 Musterstadt Wenn man diese Daten nun mit Strg. + C. oder einfach über die Kopieren Funktion des Browsers in die Zwischenablage kopiert, lassen sich die Daten ja problemlos mit einem Texteditor verändern. Von dem Texteditor können die Daten ja nun wieder in die Zwischenablage kopiert werden und entsprechen damit nicht mehr den Originaldaten aus dem Browser. Wie kann ich dieses Problem umgehen ohne den Quelltext der HTML Seite weiterzuverarbeiten? Ich hoffe mir kann jemand helfen... |
Re: Markierten Text aus Webbrowser auslesen
Naja, der Weg über die Zwischenablage ist, wie du schon richtig erkannt hast, manipulierbar.
Deshalb solltest du dir die Daten direkt holen. Der offizielle Weg führt imho über das Parsen des HTML's (besser gesagt: parsen lassen). Alternativ könntest du den Browser fragen, was er denn gerade an selektiertem Text in petto hat. Es gibt hier im Forum einige Ansätze zum Thema "URL ändern beim Browser". Eventuell könntest du darüber an die Infos kommen. |
Re: Markierten Text aus Webbrowser auslesen
Hi Christian,
Zitat:
Delphi-Quellcode:
Grüße vom marabu
uses
MSHTML; function SelectedText(doc: IHTMLDocument2): String; begin with doc.selection.createRange as IHTMLTxtRange do Result := text; end; procedure TMainForm.CopyActionExecute(Sender: TObject); begin ShowMessage(SelectedText(WebBrowser.Document as IHTMLDocument2)); end; Edit: mehr Ordnung reingebracht... |
Re: Markierten Text aus Webbrowser auslesen
@marabu: Die Antwort hätte ich ihm auch gern gegeben, aber folgendes hat mich stutzig gemacht:
Zitat:
|
Re: Markierten Text aus Webbrowser auslesen
Hallo Benjamin,
Zitat:
![]() Für andere Browser-Fabrikate funktioniert der beschriebene Weg nicht. Freundliche Grüße marabu |
Re: Markierten Text aus Webbrowser auslesen
Aha, wieder was gelernt. Danke :)
|
Re: Markierten Text aus Webbrowser auslesen
Danke erstmal für die Antworten!
Es ist in der Tat so, dass ich den Code von allen verschiedenen Browser einbauen muss. Ich habe nun aber schon Probleme bei dem oben stehenden Code. Ich habe auf meinem Desktop Delphi 5, auf meinem Laptop Delphi 2005 PE und an diesem sitze ich gerade. Hier wird mir gemeldet, dass er die Unit MSHTML nicht findet. Die Datei MSHTML.dcu gibt es auch nicht auf meinem Rechner. Ich finde sowieso, dass die ganze Installiererei mit Delphi 2005 PE viel komplizierter geworden ist. Kann mir da jemand einen Tipp geben, damit ich den Code mal so testen kann? BTW: Ich habe auch den Link verfolgt und die Uses MSHTML_TLB, SHDocVw_TLB konnten ebenfalls nicht gefunden werden. |
Re: Markierten Text aus Webbrowser auslesen
Hallo Christian,
die Unit MSHTML.PAS kannst du dir selbst erstellen:
Code:
Kopiere dir die erstellten Dateien in dein Source-Verzeichnis für Komponenten und installiere sie über ein neues Package.
TLIBIMP -Fe- %windir%\system32\mshtml.tlb
marabu |
Re: Markierten Text aus Webbrowser auslesen
Zitat:
|
Re: Markierten Text aus Webbrowser auslesen
Ich habe unterstellt, dass TLIBIMP im BIN Verzeichnis deiner Delphi-Installation liegt. Wenn nicht, dann hilft dir vielleicht dieser thread:
![]() marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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