Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Поддержка горячих мультимедиа клавиш   Найти похожие ветки 

 
Dismember ©   (2007-03-26 17:49) [0]

Здравствуйте. В программе нужно реализовать поддержку горячих мудьтимедиа клавиш, желательно с возможностью изменеия комбинаций. Стандартный компонент Delphi THotKey такое не поддерживает, поэтому ищу что-нибудь на замену. Нашел в инете подобное для Visual C++. http://www.rsdn.ru/article/controls/WinHotkeyCtrl.xml
В С не силен, поэтому вопрос. Сталкивался ли кто-нибудь из вас с подобным компонентом, предназначенным для Delphi?


 
Dismember ©   (2007-03-27 15:44) [1]

Решил проблему, используя WinAPI. Если кому интересно, вот мой код:
unit Unit1;

interface

uses
 Windows, Messages, Forms;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   procedure WM_HotKeyHandler (var Message: TMessage);
   message WM_HOTKEY;

 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 HK_mute,HK_VolumeUp,HK_VolumeDown,HK_Next, HK_Prev, HK_Stop, HK_PlayPause:integer;

implementation

{$R *.dfm}

procedure TForm1.WM_HotKeyHandler (var Message: TMessage);
var
   idHotKey: integer;
   fuModifiers: word;
   HotKey: word;
begin
 idHotkey:= Message.wParam;
 fuModifiers:= LOWORD(Message.lParam);
 HotKey:= HIWORD(Message.lParam);

 case HotKey of
   173: Caption:="Mute";
   174: Caption:="VolumeUp";
   175: Caption:="VolumeDown";
   176: Caption:="NextTrack";
   177: Caption:="PrevTrack";
   178: Caption:="Stop";
   179: Caption:="Play/Pause";
 end;
 inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 HK_mute:=GlobalAddAtom("Mute");
 RegisterHotKey(handle,HK_mute,0,173);

 HK_VolumeUp:=GlobalAddAtom("VolumeUp");
 RegisterHotKey(handle,HK_VolumeUp,0,174);

 HK_VolumeDown:=GlobalAddAtom("VolumeDown");
 RegisterHotKey(handle,HK_VolumeDown,0,175);

 HK_Next:=GlobalAddAtom("NextTrack");
 RegisterHotKey(handle,HK_Next,0,176);

 HK_Prev:=GlobalAddAtom("PrevTrack");
 RegisterHotKey(handle,HK_Prev,0,177);

 HK_Stop:=GlobalAddAtom("Stop");
 RegisterHotKey(handle,HK_Stop,0,178);

 HK_PlayPause:=GlobalAddAtom("Play/Pause");
 RegisterHotKey(handle,HK_PlayPause,0,179);
end;

end.


Вот только кнопки не перехватываются, если запущено другое приложение, использующее эти кнопки, по крайней мере с винампом так.



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
15-1177089238
фывов
2007-04-20 21:13
2007.05.20
Как правильно прописать путь к PHP-скрипту?


2-1177596120
I-New
2007-04-26 18:02
2007.05.20
как у знать сколько сколько Item ов в TlistBox


15-1177350860
ProgRAMmer Dimonych
2007-04-23 21:54
2007.05.20
Поясните, пожалуйста, такую вещь


15-1177164438
Raqw
2007-04-21 18:07
2007.05.20
Подключается к интернету, но не загружаются страницы!


15-1177150699
ArtemESC
2007-04-21 14:18
2007.05.20
А как в PHP вывести нормально дату и время в строке?