![]() |
Strg+N in Webbrowser deaktivieren ?
Hallo
ich versuche mit diesem Tutorial die Tastenkombination Strg+N in Webbrowser zu deaktivieren: ![]() Es klappt bei mir nicht. Was muss ich noch tun ?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; procedure Button1Click(Sender: TObject); private procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); // hier muss ich vielleicht Message senden ? { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // Put a TApplicationEvents component on your form and assign a OnMessage event handler: procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin // check if Ctrl-N pressed if (GetKeyState(VK_CONTROL) < 0) and (Msg.Message = WM_KEYDOWN) and (Msg.wParam = Ord('N')) then begin Handled := True; end; end; procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://google.com'); end; end. |
Re: Strg+N in Webbrowser deaktivieren ?
Zitat:
|
Re: Strg+N in Webbrowser deaktivieren ?
Du brauchst die Komponente TApplicationEvents
|
Re: Strg+N in Webbrowser deaktivieren ?
Zudem würde ich es so machen:
Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin // Strg + n deaktivieren if (Msg.wParam = Ord('N')) and (GetKeyState(VK_CONTROL) < 0) and (Msg.Message = WM_KEYDOWN) then begin Handled := IsChild(Webbrowser1.Handle, Msg.hwnd); end; end; |
Re: Strg+N in Webbrowser deaktivieren ?
Zitat:
|
Re: Strg+N in Webbrowser deaktivieren ?
Indem du diese mit dem genannten Event eines TApplicationEvent-Objektes verbindest
|
Re: Strg+N in Webbrowser deaktivieren ?
Falls du das nur machst um die Tastenkombination zu ändern und dein Programm nur mittel zum Zweck ist, gibts noch einen anderen weg:
Start > ausführen > cmd in das Installationsverzeichnis von FF wechseln
Code:
(falls du das Standart-Verzeichnis genommen hast) (..\..\ wechselt nur aus dem Benutzerverzeichnis raus, das cmd ja standardmäßig darin startet)
cd "..\..\Programme\Mozilla Firefox\chrome"
dort dann das Jar-Archiv toolkit.jar extrahieren
Code:
(erfordet installiertes JRE)
jar xf toolkit.jar
und im entstandenen Ordner global/content/ die Datei platformHTMLBindings.xml deinen Wünschen anpassen. Dann das ganze wieder zusammenpacken |
Re: Strg+N in Webbrowser deaktivieren ?
Zitat:
|
Re: Strg+N in Webbrowser deaktivieren ?
Hm recht hast du... hab mir eingebildet irgendwo was von FireFox gelesen zu haben :oops:
|
Re: Strg+N in Webbrowser deaktivieren ?
Zitat:
|
Re: Strg+N in Webbrowser deaktivieren ?
Liste der Anhänge anzeigen (Anzahl: 1)
Z.B. im OI
|
Re: Strg+N in Webbrowser deaktivieren ?
Aber meine Version D7 hat leider den Event OnMessage nicht
Ich meinte wie man den Event programmiert |
Re: Strg+N in Webbrowser deaktivieren ?
Auch Delphi 7 hat das Event OnMessage, wenn du ein TApplicationEvent auf die Form machst...
|
Re: Strg+N in Webbrowser deaktivieren ?
Liste der Anhänge anzeigen (Anzahl: 1)
So sieht es bei mir aus D7 pro
|
Re: Strg+N in Webbrowser deaktivieren ?
Hilfe mein Fahrrad kann nicht Fliegen :stupid:
TForm != TApplicationEvents Wenn man dir sagt lege eine TApplicationEvent-Komponente auf die Form und weise deren Eventhandler die Methode zu, dann meinen wir das auch!!! |
Re: Strg+N in Webbrowser deaktivieren ?
Wenn du es ohne TApplicationEvents Komponente machen möchtest:
In der private Sektion
Delphi-Quellcode:
im OnCreate:
private
procedure OnAppMessge(var Msg: tagMSG; var Handled: Boolean);
Delphi-Quellcode:
und dann:
procedure TForm1.FormCreate(Sender: TObject);
begin Application.OnMessage := OnAppMessge; end;
Delphi-Quellcode:
procedure TForm1.OnAppMessge(var Msg: tagMSG; var Handled: Boolean);
begin if (Msg.wParam = Ord('N')) and (GetKeyState(VK_CONTROL) < 0) and (Msg.Message = WM_KEYDOWN) then begin Handled := IsChild(Webbrowser1.Handle, Msg.hwnd); end; end; |
Re: Strg+N in Webbrowser deaktivieren ?
Danke @Toms
Nun ist damit Strg+N deaktiviert und damit kann man keine neue Seite in ein neues Fenster öffnen Es gibt ein kleine Lücke und zwar mit der Tastenkombination Shift+Klick auf einen Link in Webbrowser wird auch (leider) die Seite in ein neues Fenster geöffnet Wie lautet der Code, der Shift+Click deaktiviert ? |
Re: Strg+N in Webbrowser deaktivieren ?
Zitat:
Delphi-Quellcode:
Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd) and
((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) and (GetKeyState(VK_SHIFT) < 0)); |
Re: Strg+N in Webbrowser deaktivieren ?
Es stimmt was nicht um Shift + Click zu deaktivieren
Es wird trotzdem ein neues Fenster erstellt :
Delphi-Quellcode:
aber wenn ich Shift allein deaktiviere dann funktioniert :
procedure TForm1.OnAppMessge(var Msg: tagMSG; var Handled: Boolean);
begin if ((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) and (GetKeyState(VK_SHIFT) < 0)) then begin Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd); Caption:='shift pressed ;)'; end; end;
Delphi-Quellcode:
if (GetKeyState(VK_SHIFT) < 0)) then begin
Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd); Caption:='shift pressed ;)'; end; end; |
Re: Strg+N in Webbrowser deaktivieren ?
Tipp: setze die Klammern richtig
|
Re: Strg+N in Webbrowser deaktivieren ?
Zitat:
// 1:
Delphi-Quellcode:
//2:
if (GetKeyState(VK_SHIFT) < 0) and
(Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) then begin Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd); Caption:='shift pressed +Click ;)'; end;
Delphi-Quellcode:
//3:
if (GetKeyState(VK_SHIFT) < 0) and
(Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) then begin Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd); Caption:='shift pressed +Click ;)'; end;
Delphi-Quellcode:
keine funktioniert
if ((GetKeyState(VK_SHIFT) < 0) and (Msg.Message = WM_RBUTTONDOWN)) or
((GetKeyState(VK_SHIFT) < 0) and (Msg.Message = WM_RBUTTONUP)) then begin Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd); Caption:='shift pressed +Click ;)'; end; |
Re: Strg+N in Webbrowser deaktivieren ?
Delphi-Quellcode:
if ((Msg.Message = WM_LBUTTONDOWN) or (Msg.Message = WM_LBUTTONUP)) and
(GetKeyState(VK_SHIFT) < 0) then begin Handled := IsChild(WebBrowser1.Handle, Msg.Hwnd); Caption := 'shift+ click'; end; |
Re: Strg+N in Webbrowser deaktivieren ?
Es funktioniert jetzt. Danke!
Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 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 by Thomas Breitkreuz