Я пишу небольшое приложение для специальных возможностей, которое имитирует определенные жесты клавиатуры, такие как увеличение / уменьшение громкости.
Цель - отправить одну команду.
На практике громкость увеличивается до 100%, как если бы пользователь нажимал кнопку в течение пары секунд или как если бы сообщение отправлялось несколько раз.
Это поведение одинаково с PostMessage
и SendMessage
, как в C, так и в C # (с использованием PInvoke)
С:
PostMessage(0xffff, 0x0319, 0, 0xa0000)
C #:
PostMessage(new IntPtr(0xffff), WindowMessage.WM_APPCOMMAND, (void*)0, (void*)0xa0000);
Значение параметров: отправка всем окнам, сообщение без источника, увеличение громкости
Вопрос: Как выполнить команду, которая приведет к тому, что Windows отрегулирует громкость с наименьшим приращением?
Кроме того, я попытался использовать WP_KEYUP и WP_KEYDOWN, но безуспешно
// dispatch to all apps, message, wparam: virtual key, lparam: repeat count = 1
User32.PostMessage(new IntPtr(0xffff), User32.WindowMessage.WM_KEYDOWN, new IntPtr(0xaf000), new IntPtr(1));
User32.PostMessage(new IntPtr(0xffff), User32.WindowMessage.WM_KEYUP, new IntPtr(0xaf000), new IntPtr(1));