Entwickler-Ecke
Windows API - Auf "Strg" + "Buchstabe" reagieren
StrikeLucky - Fr 04.06.10 18:12
Titel: Auf "Strg" + "Buchstabe" reagieren
Moin Moin,
also ich möchte gerne das mein Programm auf "Strg" + "s" reagieren kann.
Wenn das Programm im Vordergrund ist, soll auf die Tastenkombination entsprechend reagiert werden.
Allerdings soll das nur funktionieren wenn das Programm im Vordergrund ist, sollte ein anderes Programm im Vordergrund sein, soll der Tastendruck von mein Programm ignoriert werden.
(In Firefox gibts auch sowas, einfach "Strg" und "d" drücken. Funktioniert auch nur wenn das Fenster im Vordergrund ist)
Ich hoffe jemand kann mir etwas helfen.
LG
StrikeLucky - Fr 04.06.10 18:25
Aber genau das habe ich nicht gesucht, denn das funktioniert auch wenn die Anwendung inaktiv ist.
Bergmann89 - Fr 04.06.10 18:29
Sry, hab ich überlesen^^ Dann guck dir ma THotKey an. da weiß ich aber auch grad nich, ob du nur im aktiven Progg arbeitet...
€: Die 1. Methode geht aber auch, prüf einfach vorher ob die Anwendung aktiv ist: Application.Active
jaenicke - Fr 04.06.10 18:37
Die einfachste Lösung ist einfach im Hauptmenü des Programms dem entsprechenden Menüeintrag den Shortcut zuzuordnen.
// EDIT:
Bergmann89 hat folgendes geschrieben : |
€: Die 1. Methode geht aber auch, prüf einfach vorher ob die Anwendung aktiv ist: Application.Active |
Das setzt aber auch die Shortcuts und Tasten in anderen Programmen außer Gefecht. Ob du den Hotkey dann tatsächlich nutzt oder nicht ist dabei irrelevant.
StrikeLucky - Fr 04.06.10 19:21
Bergmann89 hat folgendes geschrieben : |
Sry, hab ich überlesen^^ Dann guck dir ma THotKey an. da weiß ich aber auch grad nich, ob du nur im aktiven Progg arbeitet...
€: Die 1. Methode geht aber auch, prüf einfach vorher ob die Anwendung aktiv ist: Application.Active |
Hehe ist ja nicht schlimm, hast es ja gut gemeint.
Danke ich werde mir mal THotKey ansehen.
jaenicke hat folgendes geschrieben : |
Die einfachste Lösung ist einfach im Hauptmenü des Programms dem entsprechenden Menüeintrag den Shortcut zuzuordnen. |
Wie genau meinst du das?
jaenicke - Fr 04.06.10 19:24
Nun, wenn du z.B. den Menüeintrag Datei --> Drucken hast, dann kannst du dort den Shortcut Strg + P setzen und schon genügt die Tastenkombination um diesen Befehl auszulösen. ;-)
StrikeLucky - Fr 04.06.10 19:29
Ah ok das funktioniert, da haste Recht:)
Aber wie mache ich das wenn ich kein Menü habe?
Delete - Fr 04.06.10 19:37
Die Ereignisse OnKeyDown oder OnKeyPress des Formulares auswerten.
jaenicke - Fr 04.06.10 19:38
Und KeyPreview des Formulars auf True setzen, damit die Tastendrücke auch immer ankommen.
ffgorcky - Sa 05.06.10 09:26
Wenn Du nur kein Menü anzeigen lassen möchtest, dann kannst Du ja die Menü-Einträge alle auf visible:=false setzen und es geht trotzdem.
Hidden - Sa 05.06.10 10:42
Hi :)
ffgorcky hat folgendes geschrieben : |
Wenn Du nur kein Menü anzeigen lassen möchtest, dann kannst Du ja die Menü-Einträge alle auf visible:=false setzen und es geht trotzdem. |
Nah, ich krieg' immer ein :hair:, wenn ich von unsichtbaren TMemos, TImages oder auch TMainMenus höre ;) Das sind visuelle Komponenten, die eine einfachere und zu bevorzugende Klasse oder Funktion kapseln: TStringList, TBitmap, OnKeyDown, ..
Luckie hat folgendes geschrieben : |
Die Ereignisse OnKeyDown oder OnKeyPress des Formulares auswerten. |
Das ist die einzig richtige Lösung. THotKey geht glaube ich auch, ist aber darauf ausgelegt, vom User noch bei Bedarf umbelegt zu werden. [Strg][s] sollte aber immer gleich bleiben.
lg,
E:
jaenicke hat folgendes geschrieben : |
Und KeyPreview des Formulars auf True setzen, damit die Tastendrücke auch immer ankommen. |
Zu beachten. :idea:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!