AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser mit Edge - Copy/Paste Clipboard

Ein Thema von looseleaf · begonnen am 27. Jul 2023 · letzter Beitrag vom 3. Aug 2023
Antwort Antwort
looseleaf

Registriert seit: 25. Mai 2011
69 Beiträge
 
#1

TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 27. Jul 2023, 16:59
Liebe Gemeinde!

Delphi 11 macht mich ein bissl fertig.

Wir haben eine Funktion in unserem Programm, die aus HTML Dateien markierte Texte nehmen kann und die dann in der Kartei des aufgerufenen Klienten als bestimtme Eintrag verwendet. Das haben wir bis dato mit ExecWB(OLEMCDID_COPY...) erledigt, was ja mit Edge nicht mehr exsitiert.

Übersehe ich den Wald vor lauter Bäumen oder wie schaffe ich es, den markierten Text in die Zwischenablage zu schicken bzw. den gesamten Text zu markieren?

Danke fürs Augenöffnen
Stefan
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#2

AW: TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 27. Jul 2023, 17:59
Übersehe ich den Wald vor lauter Bäumen oder wie schaffe ich es, den markierten Text in die Zwischenablage zu schicken bzw. den gesamten Text zu markieren?
Im Edge-Browser mit:
  • Markierten Text kopieren: Strg+C
  • Gesamten Text markieren und kopieren: Strg+A und dann Strg+C

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#3

AW: TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 27. Jul 2023, 18:14
STRG+C, STRG+A und STRG+C ist ja gut und schön, aber wenn man das dann mal aus 'nem Programm heraus steuern will, wie man es beim TWebBrowser mit ExecWB(OLEMCDID_COPY...) erledigen konnte? Wie geht das beim Edge?

Edge throws error "WebBrowser1.ExecWB is not a function"

Klingt irgendwie umständlich und nicht sehr effektiv, aber eventuell ist's ja ein Ansatz.

Geändert von Delphi.Narium (27. Jul 2023 um 18:16 Uhr)
  Mit Zitat antworten Zitat
looseleaf

Registriert seit: 25. Mai 2011
69 Beiträge
 
#4

AW: TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 27. Jul 2023, 19:03
Übersehe ich den Wald vor lauter Bäumen oder wie schaffe ich es, den markierten Text in die Zwischenablage zu schicken bzw. den gesamten Text zu markieren?
Im Edge-Browser mit:
  • Markierten Text kopieren: Strg+C
  • Gesamten Text markieren und kopieren: Strg+A und dann Strg+C

Bis bald...
Thomas

Servus Thomas!
Hab mich wohl unklar ausgedrückt: Ich meine programmatisch (wir präfingieren den Text noch mit Metadaten und tragen das ganze dann in unsere Datenbank ein, da ist ein manuelles Copy/Paste nicht brauchbar).

Kleines Edit. TEdgeBrowser würde ExecuteScript() mitbringen, wo man ein document.execCommand('Copy') machen könnte. Aber TWebBrowser (wir haben Kunden mit Windows 7 und 8 im Einsatz) hat diese Schnittstelle ja nicht. Boah, es wird eklig.

Noch ein Edit: Wie komme ich an das das FEdge-Property von TWebBrowser ran?

Stefan

Geändert von looseleaf (27. Jul 2023 um 19:19 Uhr)
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#5

AW: TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 27. Jul 2023, 20:08
Ich meine programmatisch (wir präfingieren den Text noch mit Metadaten und tragen das ganze dann in unsere Datenbank ein, da ist ein manuelles Copy/Paste nicht brauchbar).
Ich würde eine Schnittstelle mit den Funktionen definieren, die ihr zur weiteren Verarbeitung benötigt. Das Browser-Control je nach Betriebssystem per Sourcecode (TWebBrowser/TEdgeBrowser) erstellen. Wenn es nicht mit Bordmittel gelöst werden muss, dann solltest du dir WebView4Delphi ansehen. Folgendes sollte reichen:
Delphi-Quellcode:
Browser.SimulateEditingCommand(ecSelectAll);
Browser.SimulateEditingCommand(ecCopy);
Mit der Funktion RetrieveHTML und dem Event OnRetrieveHTMLCompleted bekommst du auch das komplette HTML. Javascript ist eine Alternative. Je nachdem, welche Kontrolle ihr über die Seiten beim Laden habt, auch durch direkte Injektion ins HTML.

Bis bald...
Thomas

Geändert von mytbo (27. Jul 2023 um 20:22 Uhr) Grund: Hinweis auf RetrieveHTML hinzugefügt
  Mit Zitat antworten Zitat
looseleaf

Registriert seit: 25. Mai 2011
69 Beiträge
 
#6

AW: TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 3. Aug 2023, 08:17
Zitat:
Noch ein Edit: Wie komme ich an das das FEdge-Property von TWebBrowser ran?

Stefan
type TMyEdge=class(TWebBrowser)
private
function MyGetEdge: TEdgeBrowser;
public
property GetEdge: TEdgeBrowser read MyGetEdge;
end;

function TMyEdge.MyGetEdge: TEdgeBrowser;
begin
Result := inherited GetEdgeInterface;
end;


Und wenn AcviteEngine=Edge ist, dann hol ich mir den und mach ein
e.ExecuteScript('document.execCommand("Copy")');
  Mit Zitat antworten Zitat
looseleaf

Registriert seit: 25. Mai 2011
69 Beiträge
 
#7

AW: TWebBrowser mit Edge - Copy/Paste Clipboard

  Alt 3. Aug 2023, 08:18
Ich meine programmatisch (wir präfingieren den Text noch mit Metadaten und tragen das ganze dann in unsere Datenbank ein, da ist ein manuelles Copy/Paste nicht brauchbar).
Ich würde eine Schnittstelle mit den Funktionen definieren, die ihr zur weiteren Verarbeitung benötigt. Das Browser-Control je nach Betriebssystem per Sourcecode (TWebBrowser/TEdgeBrowser) erstellen. Wenn es nicht mit Bordmittel gelöst werden muss, dann solltest du dir WebView4Delphi ansehen. Folgendes sollte reichen:
Delphi-Quellcode:
Browser.SimulateEditingCommand(ecSelectAll);
Browser.SimulateEditingCommand(ecCopy);
Mit der Funktion RetrieveHTML und dem Event OnRetrieveHTMLCompleted bekommst du auch das komplette HTML. Javascript ist eine Alternative. Je nachdem, welche Kontrolle ihr über die Seiten beim Laden habt, auch durch direkte Injektion ins HTML.

Bis bald...
Thomas
Danke für den Hinweis, ic hschau's mir an, falls noch Probleme auftreten!

Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:36 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