Hi,
naja... indirekt habe ich eine Alternative. Ich habe es ein wenig anders gemacht, da mein Projekt ziemlich objekt-orientiert ist. D.h. mein Hotkey hat eine eigene Klasse spendiert bekommen. Aber ich kann mal skizzieren, wie das bei mir aussieht.
Delphi-Quellcode:
// Im Konstruktur der Klasse wird ein Handle für die Klasse erzeugt und eine Nachrichten-Methode deklariert. Das sieht so aus:
fHandle := Classes.AllocateHWnd(self.MsgProc);
// Wobei fHandle das Feld für das Handle ist und MsgProc die Methode für die Nachrichten ist.
// MsgProc sieht so aus:
procedure THotkeyItem.MsgProc(
var msg: TMessage);
begin
// Nachrichtenschleifen
if msg.Msg = WM_HOTKEY
then
if Assigned(FOnHotkey)
then
fOnHotKey(self, self.
Name)
else
DefWindowProc(FHandle, msg.Msg, msg.WParam, msg.LParam);
end;
// fOnHotKey ist hier nur eine beliebige Methode. Dort kannst du hinschreiben was du willst und was du gerade brauchst
Ansonsten ist meine Klasse ähnlich zu dem, was du da "fabriziert" (
) hast. Wenn aber das jetzt auch nicht klappt oder du das nicht verstehst mit der Klasse, dann kann ich auch die ganze Klasse posten.
Chris
PS: Obiger Code ist erfolgreich in meinem
WallpaperChanger im Einsatz.