![]() |
Tasten abfangen
Also ich habe folgendes Problem:
Wenn der benutzer eine bestimmte Taste drückt (z.B. F12) dann soll mein Programm aufpoppen, dass er dort in ein edit-feld was eingeben kann. Jetzt bin ich aber was Windows API Programmierung angeht völliger Noob. Ich habe schon gelesen dass man Hooks nehmen sollte, ich habs aber bisher einfach nicht auf die Reihe gekriegt so ein Hook zu bauen. Wäre echt super wenn mir jemand ausführlich erklären könnte wie ich so eine tastenabfrage verwirklichen kann. Am besten mit Quelltext. Vielen Dank schonmal, euer synex |
Du willst in Dein eigenes Programm beim Druck auf F12 ein weiteres Formular Feld aufmachen in der ein Edit Feld ist ?
|
nein
Ich will dass mein Programm reagiert wenn eine bestimmte Taste gedrückt wird obwohl mein Programm nicht den Fokus hat. |
Kannst vielleicht vom ShortCut im Windows gebrauch machen ? Dieses dann so belegen dass Dein Programm gestartet wird.
|
Zitat:
Ich will ja dass das Programm, egal wo ich bin in Windows, aufpoppt und der User was in das Edii-Fenster eintippen kann. Und die Windows-Shortcuts gehn ja nur vom Desktop aus soweit ich weis. aber danke trotzdem |
RegisterHotKey.
|
HOi
Such doch in diesem Forum mal nach Hooks, wenn du nichts findest, kannst du mal auf ![]() |
Da nur seien Anwendung den Tastendruck mitbekommen soll, ist RegisterHotkey genau das richtige.
|
Kann mir einer bitte mal erklären wie ich RegisterHotKey in meinem Beistpiel mit F12 schreiben muss? Das wäre wirklich voll nett! Wie gesagt ich bin absoluter noob in Sachen Win-API.
danke schonmal euch allen |
Code:
TForm1 = class(TForm)
private { Private-Deklarationen } procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY; public { Public-Deklarationen } end; const ID_F12= VKF12; procedure TForm1.WMHotKey(var Msg : TWMHotKey); begin if Msg.HotKey = ID_F12 then begin // ...; end; end; procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(Form1.Handle, ID_F12, 0, VK_F12); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(Form1.Handle, ID_F12); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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