![]() |
Keystrokes auch bei inaktivem Fenster empfangen
Hi,
wie kann ich Tastendrücke auch bei inaktivem Fenster abfragen? Nur zur Info: Ich hab nicht vor einen Trojaner zu schreiben. Meine Anwendung soll nur eben im Hintergrund laufen und sich vom Nutzer über bestimmte Tastenkombinationen steuern lassen. MfG. |
Re: Keystrokes auch bei inaktivem Fenster empfangen
Wenn es Dir um die Steuerung Deiner Anwendung durch Hotkeys geht, auch wenn diese nicht aktiv ist, dann ist die Funktion RegisterHotKey perfekt ;-)
Mal ein Beispiel. Neues Anwendung und neues Form, dann im Form-Create Ereignis folgenden Code einfügen:
Delphi-Quellcode:
Ausserdem die Klasse wie folgt erweitern
procedure TForm1.FormCreate(Sender: TObject);
begin RegisterHotKey(Handle, 1, MOD_CONTROL or MOD_SHIFT, Ord('A')); RegisterHotKey(Handle, 2, MOD_CONTROL or MOD_SHIFT, Ord('B')); end;
Delphi-Quellcode:
und die Hotkeys [Strg]+[Shift]+[A] und [Strg]+[Shift]+[B] testen ;-)
type
TForm1 = class(TForm) .... private { Private declarations } procedure WMHOTKEY(var Msg: TWMHotKey); message WM_HOTKEY; .... public { Public declarations } .... end; procedure TForm1.WMHOTKEY(var Msg: TWMHotKey); begin Caption := DateTimeToStr(Now) + IntToStr(Msg.HotKey); case Msg.HotKey of 1: begin ShowMessage('Aaaahh :-)'); end; 2: begin Close; end; else inherited; end; end; ...:cat:... |
Re: Keystrokes auch bei inaktivem Fenster empfangen
|
Re: Keystrokes auch bei inaktivem Fenster empfangen
Danke erstmal,
aber um Hotkeys geht es nicht: Meine Anwendung blendet auf Befehl die Taskleiste oder die Desktopicons aus, wechselt das Hintergrundbild ... Dazu gibt der User nur Befehle wie -iconshide- -iconsshow- -taskbarhide- ... ein. Wenn das Fenster geöffnet ist, dann geht das alles schon ganz gut, aber eben nicht, wenn eine andere Anwendung im Vordergrund ist. Hotkeys will ich nicht verwenden, weil die oft von anderen Programmen belegt sind und auch schwerer zu merken sind als Befehle. MfG. |
Re: Keystrokes auch bei inaktivem Fenster empfangen
Zitat:
Außnahmen werde da nur von Hotkeys gebildet. Aber warum kann der Benutzer deines Programmes es nicht ganz normal in den Vordergrund hole, wie jedes andere Programm auch? |
Re: Keystrokes auch bei inaktivem Fenster empfangen
Hi,
siehe : ![]() die dort zum download steht. Shell Hook Keyboard Hook und Mouse Hook Funktioniert auch bei inaktiven Fenster. Du musst die Hook's aber in einer dll unterbringen. Sieh dir das Demo Projekt an, ich verwende das Teil schon seit 3 Jahren. mfg Rumpi |
Re: Keystrokes auch bei inaktivem Fenster empfangen
@ Luckie:
Zitat:
Zitat:
@ Rumpi: Danke für den Tipp! Werde mir das gleich mal ansehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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