Показать сообщение отдельно
  #15  
Старый 05.01.2012, 11:24
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну естественно, что если поставить хоткей на 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.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием