Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Перехват клавиш


Автор: ByAlex 1.5.2012, 13:52
Здравствуйте. Подскажите, как сделать глобальный обработчик клавиш перехвата и их погошения для мультимедийных клавиш как в AIMP'е.
На ноутах, мы все знаем, имеются мультимедийные клавиши. Так при нажатии F10(не путайте с FN+F10) происходит выключение звука Windows. В AIMP'е при нажатии на эту клавишу отключается только звук программы(AIMP), а звук винды не тронут. Как это сделать?

Автор: Snowy 2.5.2012, 13:37
Код
type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    procedure WMHotKey(var msg: TWMHotKey); message WM_HOTKEY;
  end;

var Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, 1, 0, VK_VOLUME_MUTE);
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
  UnregisterHotKey(Handle, 1);
end;

procedure TForm2.WMHotKey(var msg: TWMHotKey);
begin
  if msg.HotKey = 1 then
    ShowMessage('Вы нажали кнопу отключения звука!');
end;
Здесь 1 - идентификатор кнопы, который придумываем сами. Я выбрал 1.
VK_VOLUME_MUTE - идентификатор кнопки.

Добавлено через 4 минуты и 38 секунд
Цитата(ByAlex @  1.5.2012,  14:52 Найти цитируемый пост)
Так при нажатии F10(не путайте с FN+F10) происходит выключение звука Windows.
Извращенский режим. Поменяй его в биосе на нормальный - чтобы F10 был F10, а мультимедийный Fn работало только с Fn.
Он потому и подписан ниже синеньким, что должен работать только в комбинации с синеньким Fn.

Автор: ByAlex 3.5.2012, 10:32
Snowy, спасибо большое.))) Мучался я долго с этими клавишами)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)