ну естественно, что если поставить хоткей на Ctrl+V, то в Блокнот ничего не вставится - ему просто не будет приходить WM_PASTE. и DefWindowProc тут абсолютно ни при чем. чтобы Блокноту приходило WM_PASTE нужно в обработчике OnHotKey написать код, к примеру такой:
Код:
var
AWindow: THandle;
AThreadId: Cardinal;
AProcessId: Cardinal;
begin
Windows.Beep(1000, 100); //////////
AWindow:=GetForegroundWindow;
AThreadId:=GetCurrentThreadId;
AProcessId:=GetWindowThreadProcessId(AWindow, nil);
AttachThreadInput(AThreadId, AProcessId, True);
SendMessage(GetFocus, WM_PASTE, 0, 0);
AttachThreadInput(AThreadId, AProcessId, False);
end;
теперь активному окну (the window that has the keyboard focus) будет посылаться сообщение WM_PASTE.