В том варианте как у тебя написано, после обработки Msg.Msg=WM_HOTKEY управление передаётся на обработчик по-умолчанию (DefWindowProс), но если сделать так:
Код:
procedure THotKey.HookProc(var Msg: TMessage);
begin
if (Msg.Msg = WM_HOTKEY) then
begin
if Assigned(FOnHotKey) then FOnHotKey(Self);
Exit;
end;
Msg.Result := DefWindowProс(FWnd,Msg.Msg,Msg.WParam, Msg.LParam);
end;
то обработка прервётся для данного сообщения и в "Блокнот" уже ничего не вставишь. Можешь принудительно послать на дальнейшую обработку:
Код:
procedure THotKey.HookProc(var Msg: TMessage);
begin
if (Msg.Msg = WM_HOTKEY) then
begin
if Assigned(FOnHotKey) then FOnHotKey(Self);
Msg.Result := DefWindowProс(FWnd,Msg.Msg,Msg.WParam, Msg.LParam);
end;
Msg.Result := DefWindowProс(FWnd,Msg.Msg,Msg.WParam, Msg.LParam);
end;