Глобальная горячая клавиша

Чтобы программа реагировала на нажатие определённых клавиш даже в неактивном состоянии, не обязательно ставить хук на клавиатуру. Можно зарегистрировать свою горячую клавишу, при её нажатии дескриптору, указанному при регистрации, будет отправляться сообщение WM_HOTKEY. Для регистрации горячей клавиши нужно использовать функцию RegisterHotKey(), для снятия регистрации UnregisterHotKey(). Рассмотрим пример: Сперва нужно добавить обработчик сообщений WM_HOTKEY. Для этого напишите в секции private

...
private
   procedure OnHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
...
Теперь надо реализовать этот метод.
procedure TForm1.OnHotKey(var Msg: TWMHotKey);
begin
   inherited;
   MessageBeep(0); // Любые действия при нажатии гор. клавиши
end;
И соответсвенно регистрация/снятие регистрации
procedure TForm1.FormCreate(Sender: TObject);
begin
   RegisterHotKey(Handle, Ord('U'), 0, Ord('U')); //регистрац. гор. клавиши U
end; 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   UnregisterHotKey(Handle, Ord('U')); // снятие регистрации
end; 
Обратите внимание, что после регистрации горячей клавиши при её нажатии сообщение будет отправляться только форме, для других приложений клавиша работать не будет до снятия регистрации. При нажатии клавиши U будет раздаваться пик динамика.

Вот и всё, Удачи!



Добавил(а): chasovitin Дата: 2014-05-26
отлично, что сайт не заброшен, а можно пообщаться с админом вконтакте?



Добавил(а): chasovitin Дата: 2014-05-26
отлично, что сайт не заброшен, а можно пообщаться с админом вконтакте?


    No results found.
Отменить.