Категории раздела
J2me|java [29]
Basic [6]
Delphix [21]
C+|C++|C# [3]
Pascal [10]
Другие [0]
языки которые не войшли в верхние разделы
Главная » Статьи » Программирования » Delphix

Глобальная горячая клавиша
Чтобы программа реагировала на нажатие определённых клавиш даже в неактивном состоянии, не обязательно ставить хук на клавиатуру. Можно зарегистрировать свою горячую клавишу, при её нажатии дескриптору, указанному при регистрации, будет отправляться сообщение 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 будет раздаваться пик динамика.

Категория: Delphix | Добавил: graimp (21.12.2011)
Просмотров: 134 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Наш опрос
Оцените мой сайт
Всего ответов: 25
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0