![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
key_event [D7, WinXP]
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]лично я ничего не понял