Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Lästiges Key abfangen (https://www.delphipraxis.net/212059-laestiges-key-abfangen.html)

Satyr 10. Dez 2022 23:08

Lästiges Key abfangen
 
Guten Abend,

ich bastele mir ein Tool, dessen Fläche eine Internetseite zeigt.
Also nur eine Form, ein TEdgeBrowser und eine MenuBar für ein paar Klicks.

Ein Klick davon maximiert alles auf FullScreen. Funktioniert gut, die Titelleiste und MenuBar sind dann natürlich auch weg.

Also dachte ich mir ich mache es wie mit einem VideoPlayer, das man mit ESC den Vollbildmodus beenden kann.
KeyPreview also auf True gesetzt, Key Abgefangen.

Mehr oder weniger.

Wenn ich das Programm starte, hat die Form noch den Focus. Da funktioniert das Abfangen von ESC. Wenn ich nur in der MenuBar rumklicke auch.
Sobald ich aber in TEdgeBrowser klicke,funktioniert das Abfangen nicht mehr. Leider auch nicht mit ApplicationEventsMessage.

Gibt es da noch eine andere Möglichkeit? Ich weiß nicht wie ich überwachen kann was (in dem Kontext) in TEdgeBrowser passiert. Eingebaute onKey Ereignisse hat er nicht.

Irgendwie muss ich doch trotzdem an den Key kommen können?

himitsu 11. Dez 2022 00:05

AW: Lästiges Key abfangen
 
der hat seine eigene Messageloop, drum kommen dessen Events nicht im Delphi an

ist mit vielen "externen" Komponenten so,
z.B. auch das noch krankere Acrobat


also entweder z.B. via JavaScript aus dem Browser heraus
oder ein globaler Keyboardhook

Satyr 11. Dez 2022 00:07

AW: Lästiges Key abfangen
 
Mist, sowas habe ich befürchtet.
Dann bastele ich ein kleines SlidePanel am oberen Rand.

Danke für die schnelle Antwort :)

jaenicke 11. Dez 2022 11:51

AW: Lästiges Key abfangen
 
Ein Tastaturhook sollte aber funktionieren.

mytbo 11. Dez 2022 20:01

AW: Lästiges Key abfangen
 
Zitat:

Zitat von Satyr (Beitrag 1516038)
Irgendwie muss ich doch trotzdem an den Key kommen können?

Wenn es nicht unbedingt ESC sein muss, bleibt es einfach. Im Beispiel zum Artikel verwende ich andere Funktionstasten, um Aktionen auszuführen.

Bis bald...
Thomas

Satyr 11. Dez 2022 20:14

AW: Lästiges Key abfangen
 
Die F-Tasten harre ich auch schon probiert. Funktioniert aber leider bei mir auch nur, wenn der TEdgeBrowser nicht den Fokus hat.

-
Einen Systemweiten Hook möchte ich eigentlich vermeiden.

Ich glaube ich werde einfach bei einem SlidingPanel bleiben. Muss man halt klicken statt Taste drücken.

mytbo 11. Dez 2022 20:51

AW: Lästiges Key abfangen
 
Zitat:

Zitat von Satyr (Beitrag 1516059)
Die F-Tasten harre ich auch schon probiert. Funktioniert aber leider bei mir auch nur, wenn der TEdgeBrowser nicht den Fokus hat.

Bei mir funktioniert es, auch wenn ich im EdgeBrowser arbeite. Das Programm wurde mit Delphi 11.2 kompiliert.

Bis bald...
Thomas

Satyr 12. Dez 2022 23:38

AW: Lästiges Key abfangen
 
Ich nutze hier die Community Edition. Kann mir aber nicht vorstellen das es daran liegt.


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