Перейти к содержанию
Fire Monkey от А до Я
  • 0

[Windows] Глобальный хук на клавиши возможно ли FMX


Просто Проги

Вопрос

Собственно сделал я  программу мини проигрователь всё вроде даже работает, но нужно переключать треки когда приложение свернуто,т.е не видно пробовал реализацию через WinApi

var
  FWnd:HWnd;

RegisterHotKey(FWnd, Ord('U'), 0, Ord('U'));

но почему то нечего не работает(

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

 

Brovin Yaroslav

По идее автору нужно ловить сообщение WM_HOTKEY. Разве не достаточно проверить пришло оно или нет в WndProc? И если это другое сообщение, просто отправлять его на старый WndProc?

Кстати, а если сделать еще вариант - создать свое невидимое окно (как делает VCL TTimer ) его зарегистрировать в RegisterHotKey и ловить сообщения с него?
 

Ссылка на комментарий
  • 0

Лучший вариант здесь был предложен с AllocateHWND. Только вот в реализации оконная процедура очень подкачала. Не будет такое окно работать.

Ссылка на комментарий
  • 0
В 13.12.2017 в 09:26, POV сказал:

Плюнул и влепил в таймер 

GetAsyncKeyState

Да у Вас просто обработка хоткеев неправильно написана. Если Вы регистрируете хоткей как 

RegisterHotKey(FWnd, Ord('U'), 0, Ord('U'));

то и обрабатывать надо соответственно:

case AMsg.Msg of
    WM_HOTKEY:
      case TWMHotKey(AMsg).hotkey of
        Ord('U'): ShowMessage('Событие hotkey RegisterHotKey(FWnd, Ord(''U''), 0, Ord(''U''))');
      end;
  end;
end;

У Вас первый Ord('U') выступает в качестве ID и, соответственно, на него надо и проверять в case-е. Зарегистрируйте его как RegisterHotKey(FWnd, 1, 0, Ord('U')) - тогда в case-е он пойдет на "1: ... "

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...