C# Что это за коды / сообщения, меняющие громкость

Я нашел этот скрипт для изменения громкости звука системы, и он работает. Но как называются эти коды постоянного объема и где я могу найти полный список этих кодов, которые делают больше вещей.

    [DllImport("user32.dll")]
    static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

//Volume codes, or messages, or whatever they are called
const int VOLUME_MUTE = 0x80000;
const int VOLUME_DOWN = 0x90000;
const int VOLUME_UP = 0xA0000;

SendMessage(this.Handle, 0x319, IntPtr.Zero, (IntPtr)VOLUME_UP);

1 ответ

Решение

Это сообщения AppCommand.

0x319 - это Win32 Windows MSG для WM_APPCOMMAND, а сообщения более точны: APPCOMMAND_VOLUME_UP и т. Д.

Сообщения AppCommand - это сообщения, отправляемые в окна, которые обрабатываются на глобальном уровне и выполняют определенные функции приложения. Они, как правило, связаны с горячими клавишами клавиатуры и функциями кнопок мыши.

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

Вы можете найти подробную информацию обо всех сообщениях в справочнике Win32 API:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646275(v=vs.85).aspx

Другие вопросы по тегам