Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

key_event [D7, WinXP]


Страницы:   1 2

pomashok ©   (2004-12-18 22:37:00) 

Привет!Подскажите как послать сообщение от "Мультимедийной" клавиши скажем "PLAY" ?
SendMessage...?


GuAV   (2004-12-21 00:54:00) [21]

Piter ©   (21.12.04 0:16) [16]
я правильно подумал то...


насчёт того что

> Return в C прерывает функцию

- да. Кстати я тоже С не знаю :)


Piter   (2004-12-21 00:16:00) [22]

ну в общем, я правильно подумал то...


GuAV   (2004-12-20 23:46:00) [23]

2 Piter ©  

Из MSDN:
The return statement terminates the execution of a function and returns control to the calling function (or, in the case of the main function, transfers control back to the operating system).


Piter   (2004-12-20 23:34:00) [24]

GuAV ©   (20.12.04 23:08) [13]
Exit;


а почему Exit? Return в C прерывает функцию?


GuAV   (2004-12-20 23:08:00) [25]

Piter ©   (20.12.04 23:02) [11]


Не-а


if message = WM_APPCOMMAND then
case GET_APPCOMMAND_LPARAM(lParam) of
  APPCOMMAND_MEDIA_NEXTTRACK:
    begin
      // do something, which skips the track
      Result := 1;
      Exit;
    end;
...


GuAV   (2004-12-20 23:06:00) [26]

pomashok   (20.12.04 20:33) [7]
как получить их константы?


или скачать файлы где они прописаны. Например: ftp://delphi-jedi.org/api/win32api.zip- SDK файлы переведенные в Delphi.

или написать программу отлавливающую WM_KEYDOWN и записывающую/отображающую wParam, затем понажимать эти клавиши.

>WM_APPCOMMAND
>APPCOMMAND_MEDIA_PREVIOUSTRACK


Уже достаточно информации для поиска в msdn / в google, не так ли ?

PS: как раз сегодня написал плагин к винампу чтоб эти из [6] работали откуда угодно.


Piter   (2004-12-20 23:02:00) [27]

Имхо, так:

if message = WM_APPCOMMAND then
 case GET_APPCOMMAND_LPARAM(lParam) of
   APPCOMMAND_MEDIA_NEXTTRACK:
     // do something, which skips the track
   APPCOMMAND_MEDIA_PREVIOUSTRACK
     // do something...
   ...
 else
   // handle other messages or call default window proc


pomashok   (2004-12-20 22:52:00) [28]

if(message == WM_APPCOMMAND)
{
 switch(GET_APPCOMMAND_LPARAM(lParam))
 {
 case APPCOMMAND_MEDIA_NEXTTRACK:
   // do something, which skips the track
   return 1;
 case APPCOMMAND_MEDIA_PREVIOUSTRACK:
   // do something...
   return 1;
 case APPCOMMAND_MEDIA_STOP:
   // do something, which stops playing
   return 1;
 case APPCOMMAND_MEDIA_PLAY_PAUSE:
   // toggle between play and pause
   return 1;
 }
}
// handle other messages or call default window proc.
...


как эту сишный код перевести в delphi ?


pomashok   (2004-12-20 21:13:00) [29]

натолкните на мысль что ли .... готовый код не прошу ... очень хочется допетрить ;)


ECM   (2004-12-20 21:05:00) [30]

Сказать три раза подряд "хАчу" ....:)


pomashok   (2004-12-20 20:33:00) [31]

GuAV ©работает! но напрашивается другой вопрос как быть с остальными кнопками мультимедийной клавы...?
как получить их константы?
и фсе же как работать WM_APPCOMMAND ???????


GuAV   (2004-12-20 20:09:00) [32]

Константы, полученные обработкой WM_KEYDOWN:

const
 VK_PLAYPAUSE = $000000B3; //  play/pause
 VK_STOP      = $000000B2; //  stop
 VK_FORWARD   = $000000B0; //  >>
 VK_BACK      = $000000B1; //  <<


pomashok   (2004-12-20 19:48:00) [33]

и фсе к тому же ... дайте хоть ссылочку !а то в тупике


pomashok   (2004-12-20 00:27:00) [34]

хачу в своей проге сделать кнопочку (которая скажем включала в WMP "PLAY"), значит в обработчике события кнопки необходимо сгенерировать эмуляцию нажатия кнопки "PLAY" мультимедийной клавиши клавиатуры!!!
из MSDN известно что необходимо сделать это через WM_APPCOMMAND
!!!
APPCOMMAND_MEDIA_PLAY  - параметр отвечающий за воспроизведение!(см.выше)

SendMessage(Application.Handle, // хендл проги ... тока по ходу нада хендл WMP :\
           WM_APPCOMMAND,
           APPCOMMAND_MEDIA_PLAY,  // Lparam
           0 //WParam
           );


Piter   (2004-12-20 00:14:00) [35]

pomashok   (19.12.04 20:47) [2]
хачу


научитесь говорить по русски :)

но как терь это все в кучу связать?

что связать то? Ты привел выдержки их хелпа какие-то - зачем они мне? Обстоятельно расскажи что имеешь, что хочешь сделать. Подробно. Как можно подробнее.
Ну и также что пытался сделать, с примером кода, что не получилось.


pomashok   (2004-12-19 20:47:00) [36]

хачу свой прогой управлять WMP (Play/Stop и тд...)
в MSDN
Syntax

WM_APPCOMMAND

   WPARAM wParam
   LPARAM lParam;
   
Parameters

wParam
Handle to the window where the user clicked the button or pressed the key. This can be a child window of the window receiving the message. For more information about processing this message, see the Remarks section.
lParam
Use the following code to get the information contained in the lParam parameter.
cmd  = GET_APPCOMMAND_LPARAM(lParam);

uDevice = GET_DEVICE_LPARAM(lParam);

dwKeys = GET_KEYSTATE_LPARAM(lParam);

================
APPCOMMAND_MEDIA_PLAY_PAUSE
Play or pause playback. If there are discrete Play and Pause buttons, applications should take action on this command as well as APPCOMMAND_MEDIA_PLAY and APPCOMMAND_MEDIA_PAUSE.
APPCOMMAND_MEDIA_PREVIOUSTRACK
Go to previous track.
=======================
но как терь это все в кучу связать?


Piter   (2004-12-19 01:26:00) [37]

лично я ничего не понял


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо