Zitat von
Lannes:
Hallo,
Das ist mit dem Demo Browser von Toms auf meinem Rechner auch so.
Folgenden Code nutze ich in meinen Programmen, damit klappt es.
// ShortCut (Ctrl-C, Ctrl-O, etc.) in webBrowser2 einbauen
Bein Code funktioniert auch nicht alles.
z.B bei VK_UP, VK_DOWN wird doppelt "gesprungen".
Hier meine verbesserte Variante:
Delphi-Quellcode:
procedure TfrmMyBrowser.MsgHandler(var Msg: TMsg; var Handled: Boolean);
const
StdKeys = [VK_BACK, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT];
var IOIPAO: IOleInPlaceActiveObject;
Dispatch: IDispatch;
begin
if WebBrowser1 = nil then
begin
Handled := False;
Exit;
end;
Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = True);
if (Handled) and (not WebBrowser1.Busy) then
begin
if FOleInPlaceActiveObject = nil then
begin
Dispatch := WebBrowser1.Application;
if Dispatch <> nil then
begin
Dispatch.QueryInterface(IOleInPlaceActiveObject, IOIPAO);
if IOIPAO <> nil then FOleInPlaceActiveObject := IOIPAO;
end;
end;
if FOleInPlaceActiveObject <> nil then
if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
(Msg.wParam in StdKeys) then
//nothing - do not pass on Backspace, Left, Right, Up, Down arrows
else FOleInPlaceActiveObject.TranslateAccelerator(Msg);
end;
end;