AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Markierten Text aus Webbrowser auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Markierten Text aus Webbrowser auslesen

Ein Thema von Yheeky · begonnen am 28. Mär 2006 · letzter Beitrag vom 29. Mär 2006
Antwort Antwort
Seite 1 von 3  1 23      
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 00:31
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...
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 06:24
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 07:20
Hi Christian,

Zitat von Yheeky:
Wie kann ich dieses Problem umgehen ohne den Quelltext der HTML Seite weiterzuverarbeiten?
diese Frage irritiert mich etwas, aber ohne die Zwischenablage kommst du so an den markierten Text:

Delphi-Quellcode:
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;
Grüße vom marabu

Edit: mehr Ordnung reingebracht...
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 07:43
@marabu: Die Antwort hätte ich ihm auch gern gegeben, aber folgendes hat mich stutzig gemacht:
Zitat von Yheeky:
Ich habe mein Programm am Laufen und würde diesem gerne Daten aus einem Browser zur Verfügung stellen.
Mir scheint, die Daten kommen aus irgendeinem Browser. Oder irre ich mich, Christian?
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 08:23
Hallo Benjamin,

Zitat von chaosben:
Die Antwort hätte ich ihm auch gern gegeben
hättest du ruhig machen können - beim IE braucht Christian den Code so oder so. Ist das IE Fenster außerhalb der Anwendung, dann muss er sich den Zeiger auf die Schnittstelle IHTMLDocument2 anders besorgen: klick.

Für andere Browser-Fabrikate funktioniert der beschriebene Weg nicht.

Freundliche Grüße

marabu
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 09:45
Aha, wieder was gelernt. Danke
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#7

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 13:30
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 13:53
Hallo Christian,

die Unit MSHTML.PAS kannst du dir selbst erstellen:

Code:
TLIBIMP -Fe- %windir%\system32\mshtml.tlb
Kopiere dir die erstellten Dateien in dein Source-Verzeichnis für Komponenten und installiere sie über ein neues Package.

marabu
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#9

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 14:05
Zitat von marabu:
Hallo Christian,

die Unit MSHTML.PAS kannst du dir selbst erstellen:

Code:
TLIBIMP -Fe- %windir%\system32\mshtml.tlb
Kopiere dir die erstellten Dateien in dein Source-Verzeichnis für Komponenten und installiere sie über ein neues Package.

marabu
Wie kann ich die denn erstellen? *g* TLIBIMP? Was ist das?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Markierten Text aus Webbrowser auslesen

  Alt 28. Mär 2006, 14:14
Ich habe unterstellt, dass TLIBIMP im BIN Verzeichnis deiner Delphi-Installation liegt. Wenn nicht, dann hilft dir vielleicht dieser thread: klick

marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:49 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