![]() |
hotkeys
Ja gut, ich weiss, dass sowas hier schon öfter gefragt wurde. Ich hab hab auch schon in der Suche geguckt, bin auch fündig geworden, aber irgendwie...
Also! ich hab ein Programm geschrieben, was beim start sofort als trayicon rechts unten in die taskleiste geht und immer nebenher läuft. Und da wollte ich jetzt etwas per tastendruck ausführen. Z.B alt+cltr+P |
Re: hotkeys
das wird so einfach aber nicht gehen, weil dein programm zwar aktiv, aber nicht immer den fokus hat...
das kannst du sicher nur mit hooks realisieren...aber vielleicht wolltest du das ja auch. synonym ![]() |
Re: hotkeys
was sind hooks?
wenn das aber die einzige möglichkeit ist, bitte. { Ich hab mir ja schon gedacht dass das einProblem ist :idea:} |
Re: hotkeys
Hi!
Wieso sollte das nicht gehen? Du musst nur einen systemweiten HotKey registrieren:
Delphi-Quellcode:
Weiter können mit ID+1, ID+2 etc. definiert werden.
[...]
private procedure WMHotKey(var Msg: TWMHotKey); Message WM_HOTKEY; [...] procedure TForm1.Create(Sender: TObject); begin if NOT RegisterHotKey(Form1.Handle, ID, MOD_ALT, Ord('A')) then ShowMessage('Hotkey konnte nicht registriert werden'); [...] procedure TForm1.WMHotKey(Var Msg: TWMHotkey); begin case Msg.IdHotKey of ID: begin [...] Ciao fkerber |
Re: hotkeys
danke, werd ich direkt mal probieren
|
Re: hotkeys
Kann es sein, dass ich noch irgendeine unit einbinden muss?
Es wird immer ein Fehler angezeigt, weil der compiler einige variablen nicht kennt |
Re: hotkeys
Hi!
Ich habe folgende bei diesem Projekt eingebunden:
Delphi-Quellcode:
Kannst ja gucken, was dir fehlt.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShlObj, ComObj, StdCtrls, ExtCtrls, ShellAPI; Ciao fkerber |
Re: hotkeys
ich hab auch die Units eingebunden und bekomme:
"Undefinierter Bezeichner: idHotKey" |
Re: hotkeys
Moin Tubos,
lass' mal das id bei idHotkey weg. Vielleicht geht's damit. |
Re: hotkeys
Delphi-Quellcode:
type
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } HotKeyID: Integer; procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if Msg.HotKey = HotKeyID then ShowMessage('Ctrl + Alt + P wurde gedrückt !'); end; procedure TForm1.FormCreate(Sender: TObject); const VK_P = $50; begin HotKeyID := GlobalAddAtom(PChar(Application.Exename + '_Hotkey1')); RegisterHotKey(Handle, HotKeyID, MOD_CONTROL + MOD_ALT, VK_P); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(Handle, HotKeyID); GlobalDeleteAtom(HotKeyID); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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