Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser alles markieren und kopieren (https://www.delphipraxis.net/117153-twebbrowser-alles-markieren-und-kopieren.html)

Bl00dh0und 12. Jul 2008 21:06


TWebBrowser alles markieren und kopieren
 
Um den gesamten Inhalt des Webbrowsers auszuwählen und zu kopieren, verwende ich folgenden Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls, ActiveX;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.ch/');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do application.processmessages;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT);
WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT);
except
end;
end;

initialization
  OleInitialize(nil);

finalization
  OleUninitialize;

end.
Jedoch kann ich den Inhalt erst markieren und kopieren, wenn ich von Hand auf den Webbrowser-Bereich in meiner Anwendung geklickt habe. Kann man diesen Klick auch mit einem Befehl simulieren oder ist dies eine Einstellungssache des Internet Explorers?

toms 13. Jul 2008 02:17

Re: TWebBrowser alles markieren und kopieren
 
Hallo, setzte den Fokus zuvor auf den Webbrowser:

Delphi-Quellcode:
procedure WB_SelectAllAndCopyToClipbrd(Webrowser: TWebbrowser);
begin
  with Webrowser do
  begin
    try
      OleObject.Document.body.focus; // Fokus auf Webbrowser setzen
      ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT); // alles markieren
      ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT); // in die Zwischenablage kopieren
      ExecWB(OLECMDID_CLEARSELECTION, OLECMDEXECOPT_DONTPROMPTUSER); // Markierung aufheben
    except
    end;
  end;
end;

Bl00dh0und 13. Jul 2008 16:04

Re: TWebBrowser alles markieren und kopieren
 
Hmm bei google scheint
Delphi-Quellcode:
OleObject.Document.body.focus;
oder
Delphi-Quellcode:
OleObject.Document.ParentWindow.focus;
ganz gut zu funktionieren. Jedoch nicht bei allen Seiten (vlt. wegen Javascript oder ActiveX?). Gibt es noch andere Methoden?

toms 13. Jul 2008 16:15

Re: TWebBrowser alles markieren und kopieren
 
Bei welcher Seite geht's z.B nicht?


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