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...?


Piter   (2004-12-26 18:06:00) [1]

GuAV ©   (26.12.04 15:32) [36]
Как я могу юзать в ней MF !?


Да, я слышал о проблемах с MF в win98... ну а что я могу поделать? Я даже не знаю в чем причина...


GuAV   (2004-12-26 15:32:00) [2]

Piter ©   (26.12.04 15:21) [35]

Знаешь, вопрос нужно ставить по - другому:

Как я могу юзать в ней MF !?

Ибо с остальным: Delphi, MSDN Library, Word, Excel, IE, etc - никаких проблем.


Piter   (2004-12-26 15:21:00) [3]

GuAV ©   (26.12.04 13:31) [33]
т.к. у меня win98


???? GuAV! Как ты можешь в ней работать...


pomashok   (2004-12-26 14:15:00) [4]

GuAV ©  [33]
APPCOMMAND_VOLUME_MUTE         = 8;это я выполнил таким образом SendMessage(FindWindow(PChar('SystemTray_Main'),nil),WM_APPCOMMAND,0,8 shl 16);  // MUTEеще поддерживает Volum UP/Down
а к остальным я подобраться не могу.
нада чет через waveOutSetVolume ... но как  пока что не получается ....

т.е. судя по этому сообщение отправлять себе или HWND_DESKTOP. Проверить не могу, т.к. у меня win98, и это сообщение не поддерживается.

я не большой программер... поэтому неособо понимаю кусочки кода :(


GuAV   (2004-12-26 13:31:00) [5]

2. если я хачу выполнить APPCOMMAND_VOLUME_MUTE         = 8;

If a child window does not process this message and instead calls DefWindowProc, DefWindowProc will send the message to its parent window. If a top level window does not process this message and instead calls DefWindowProc, DefWindowProc will call a shell hook with the hook code equal to HSHELL_APPCOMMAND.

т.е. судя по этому сообщение отправлять себе или HWND_DESKTOP. Проверить не могу, т.к. у меня win98, и это сообщение не поддерживается.


pomashok   (2004-12-26 03:21:00) [6]

ОГРОМНОЕ спасибо! работает ;)
1.еще вопросик по ходу... если приложение которое мы FindWindow находиться в трее, срабатывать фсиравно будет?
2. если я хачу выполнить APPCOMMAND_VOLUME_MUTE         = 8;
 но не в WMP ... как непосредственно обратиться к той части которая отвечает за ЗВУК ?(приложение или что то в этом роде...типа "ОБЩАЯ ГРОМКОСТЬ" нах в трее)


GuAV   (2004-12-26 02:41:00) [7]

pomashok   (26.12.04 2:36) [30]
SendMessage(FindWindow('WMPlayerApp', nil),
        WM_APPCOMMAND, 0, 46 shl 16);


pomashok   (2004-12-26 02:36:00) [8]

SendMessage(FindWindow('WMPlayerApp', nil),
         WM_APPCOMMAND, 0, 46 );
так не работает...


GuAV   (2004-12-26 02:13:00) [9]

В смысле по предыдущему ответу надо обрабатывать уже не WM_KEYDOWN, а WM_APPCOMMAND.

Вот кчтати фрагмент из ftp://delphi-jedi.org/api/win32api.zip
 APPCOMMAND_BROWSER_BACKWARD    = 1;
 {$EXTERNALSYM APPCOMMAND_BROWSER_BACKWARD}
 APPCOMMAND_BROWSER_FORWARD     = 2;
 {$EXTERNALSYM APPCOMMAND_BROWSER_FORWARD}
 APPCOMMAND_BROWSER_REFRESH     = 3;
 {$EXTERNALSYM APPCOMMAND_BROWSER_REFRESH}
 APPCOMMAND_BROWSER_STOP        = 4;
 {$EXTERNALSYM APPCOMMAND_BROWSER_STOP}
 APPCOMMAND_BROWSER_SEARCH      = 5;
 {$EXTERNALSYM APPCOMMAND_BROWSER_SEARCH}
 APPCOMMAND_BROWSER_FAVORITES   = 6;
 {$EXTERNALSYM APPCOMMAND_BROWSER_FAVORITES}
 APPCOMMAND_BROWSER_HOME        = 7;
 {$EXTERNALSYM APPCOMMAND_BROWSER_HOME}
 APPCOMMAND_VOLUME_MUTE         = 8;
 {$EXTERNALSYM APPCOMMAND_VOLUME_MUTE}
 APPCOMMAND_VOLUME_DOWN         = 9;
 {$EXTERNALSYM APPCOMMAND_VOLUME_DOWN}
 APPCOMMAND_VOLUME_UP           = 10;
 {$EXTERNALSYM APPCOMMAND_VOLUME_UP}
 APPCOMMAND_MEDIA_NEXTTRACK     = 11;
 {$EXTERNALSYM APPCOMMAND_MEDIA_NEXTTRACK}
 APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
 {$EXTERNALSYM APPCOMMAND_MEDIA_PREVIOUSTRACK}
 APPCOMMAND_MEDIA_STOP          = 13;
 {$EXTERNALSYM APPCOMMAND_MEDIA_STOP}
 APPCOMMAND_MEDIA_PLAY_PAUSE    = 14;
 {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY_PAUSE}
 APPCOMMAND_LAUNCH_MAIL         = 15;
 {$EXTERNALSYM APPCOMMAND_LAUNCH_MAIL}
 APPCOMMAND_LAUNCH_MEDIA_SELECT = 16;
 {$EXTERNALSYM APPCOMMAND_LAUNCH_MEDIA_SELECT}
 APPCOMMAND_LAUNCH_APP1         = 17;
 {$EXTERNALSYM APPCOMMAND_LAUNCH_APP1}
 APPCOMMAND_LAUNCH_APP2         = 18;
 {$EXTERNALSYM APPCOMMAND_LAUNCH_APP2}
 APPCOMMAND_BASS_DOWN           = 19;
 {$EXTERNALSYM APPCOMMAND_BASS_DOWN}
 APPCOMMAND_BASS_BOOST          = 20;
 {$EXTERNALSYM APPCOMMAND_BASS_BOOST}
 APPCOMMAND_BASS_UP             = 21;
 {$EXTERNALSYM APPCOMMAND_BASS_UP}
 APPCOMMAND_TREBLE_DOWN         = 22;
 {$EXTERNALSYM APPCOMMAND_TREBLE_DOWN}
 APPCOMMAND_TREBLE_UP           = 23;
 {$EXTERNALSYM APPCOMMAND_TREBLE_UP}
 APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24;
 {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_MUTE}
 APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25;
 {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_DOWN}
 APPCOMMAND_MICROPHONE_VOLUME_UP   = 26;
 {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_UP}
 APPCOMMAND_HELP                   = 27;
 {$EXTERNALSYM APPCOMMAND_HELP}
 APPCOMMAND_FIND                   = 28;
 {$EXTERNALSYM APPCOMMAND_FIND}
 APPCOMMAND_NEW                    = 29;
 {$EXTERNALSYM APPCOMMAND_NEW}
 APPCOMMAND_OPEN                   = 30;
 {$EXTERNALSYM APPCOMMAND_OPEN}
 APPCOMMAND_CLOSE                  = 31;
 {$EXTERNALSYM APPCOMMAND_CLOSE}
 APPCOMMAND_SAVE                   = 32;
 {$EXTERNALSYM APPCOMMAND_SAVE}
 APPCOMMAND_PRINT                  = 33;
 {$EXTERNALSYM APPCOMMAND_PRINT}
 APPCOMMAND_UNDO                   = 34;
 {$EXTERNALSYM APPCOMMAND_UNDO}
 APPCOMMAND_REDO                   = 35;
 {$EXTERNALSYM APPCOMMAND_REDO}
 APPCOMMAND_COPY                   = 36;
 {$EXTERNALSYM APPCOMMAND_COPY}
 APPCOMMAND_CUT                    = 37;
 {$EXTERNALSYM APPCOMMAND_CUT}
 APPCOMMAND_PASTE                  = 38;
 {$EXTERNALSYM APPCOMMAND_PASTE}
 APPCOMMAND_REPLY_TO_MAIL          = 39;
 {$EXTERNALSYM APPCOMMAND_REPLY_TO_MAIL}
 APPCOMMAND_FORWARD_MAIL           = 40;
 {$EXTERNALSYM APPCOMMAND_FORWARD_MAIL}
 APPCOMMAND_SEND_MAIL              = 41;
 {$EXTERNALSYM APPCOMMAND_SEND_MAIL}
 APPCOMMAND_SPELL_CHECK            = 42;
 {$EXTERNALSYM APPCOMMAND_SPELL_CHECK}
 APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43;
 {$EXTERNALSYM APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE}
 APPCOMMAND_MIC_ON_OFF_TOGGLE      = 44;
 {$EXTERNALSYM APPCOMMAND_MIC_ON_OFF_TOGGLE}
 APPCOMMAND_CORRECTION_LIST        = 45;
 {$EXTERNALSYM APPCOMMAND_CORRECTION_LIST}
 APPCOMMAND_MEDIA_PLAY             = 46;
 {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY}
 APPCOMMAND_MEDIA_PAUSE            = 47;
 {$EXTERNALSYM APPCOMMAND_MEDIA_PAUSE}
 APPCOMMAND_MEDIA_RECORD           = 48;
 {$EXTERNALSYM APPCOMMAND_MEDIA_RECORD}
 APPCOMMAND_MEDIA_FAST_FORWARD     = 49;
 {$EXTERNALSYM APPCOMMAND_MEDIA_FAST_FORWARD}
 APPCOMMAND_MEDIA_REWIND           = 50;
 {$EXTERNALSYM APPCOMMAND_MEDIA_REWIND}
 APPCOMMAND_MEDIA_CHANNEL_UP       = 51;
 {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_UP}
 APPCOMMAND_MEDIA_CHANNEL_DOWN     = 52;
 {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_DOWN}

 FAPPCOMMAND_MOUSE = $8000;
 {$EXTERNALSYM FAPPCOMMAND_MOUSE}
 FAPPCOMMAND_KEY   = 0;
 {$EXTERNALSYM FAPPCOMMAND_KEY}
 FAPPCOMMAND_OEM   = $1000;
 {$EXTERNALSYM FAPPCOMMAND_OEM}
 FAPPCOMMAND_MASK  = $F000;
 {$EXTERNALSYM FAPPCOMMAND_MASK}

function GET_APPCOMMAND_LPARAM(lParam: LPARAM): Shortint;
{$EXTERNALSYM GET_APPCOMMAND_LPARAM}

function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
{$EXTERNALSYM GET_DEVICE_LPARAM}

function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
{$EXTERNALSYM GET_MOUSEORKEY_LPARAM}

function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
{$EXTERNALSYM GET_FLAGS_LPARAM}

function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
{$EXTERNALSYM GET_KEYSTATE_LPARAM}


GuAV   (2004-12-26 02:05:00) [10]

pomashok   (26.12.04 1:09) [26]
откуда брать константы shl 16 ?


:-)


>GuAV ©   (20.12.04 23:06) [12]
>pomashok   (20.12.04 20:33) [7]
>как получить их константы?
>
> или скачать файлы где они прописаны. Например:
> ftp://delphi-jedi.org/api/win32api.zip- SDK файлы
>переведенные в Delphi.
>
> или написать программу отлавливающую WM_KEYDOWN и
> записывающую/отображающую wParam, затем понажимать эти
> клавиши.


Piter   (2004-12-26 01:54:00) [11]

pomashok   (26.12.04 1:09) [26]
откуда брать константы shl 16 ?


:)))))))))))))))))


pomashok   (2004-12-26 01:09:00) [12]

procedure TForm1.Button5Click(Sender: TObject);
begin
SendMessage(FindWindow('WMPlayerApp', nil),
           WM_APPCOMMAND,
           0,
           APPCOMMAND_MEDIA_PLAY_PAUSE shl 16); // здесь выдает ошибку
end;

выдает ошибку!
GuAV © [6]
откуда брать константы shl 16 ? ссылочку или кусок кода ;)
все таки хотелось бы добить этот вопрос!я думаю он многих интересует...


GuAV   (2004-12-24 23:53:00) [13]

Правильная ссылка уже была у тебя, сужу по [2].

SendMessage(FindWindow('WMPlayerApp', nil), WM_APPCOMMAND, 0, APPCOMMAND_MEDIA_PLAY_PAUSE shl 16);


pomashok   (2004-12-24 22:15:00) [14]

ссылку киньте толковую какую нить...


GuAV   (2004-12-22 23:21:00) [15]

2 pomashok   (22.12.04 22:18) [22]
> а где писать не совсем понял...

Перечитай внимательно pomashok   (19.12.04 20:47) [2]


pomashok   (2004-12-22 22:18:00) [16]

GuAV ©т.е. создаем function....
Т.е. чтоб писать APPCOMMAND_ХХХХ в lParam надо эти константы shl 16.APPCOMMAND_ХХХХ - это имеется ввиду APPCOMMAND_MEDIA_PLAY ну и д.р.? а где писать не совсем понял...


GuAV   (2004-12-22 21:55:00) [17]

pomashok   (19.12.04 20:47) [2]
cmd  = GET_APPCOMMAND_LPARAM(lParam);


function GET_APPCOMMAND_LPARAM(lParam: LPARAM): Shortint;
begin
 Result := Shortint(HIWORD(lParam) and not FAPPCOMMAND_MASK);
end;

Т.е. чтоб писать APPCOMMAND_ХХХХ в lParam надо эти константы shl 16.


pomashok   (2004-12-22 21:30:00) [18]

ничего не получается... какие еще мысли есть ?


Просто Джо   (2004-12-22 13:10:00) [19]

...и не надо

8()


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

неработает.....;(


Страницы:   1 2

Наверх

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