C # Simulate VolumeMute press

Я получил следующий код для имитации нажатия клавиш для отключения звука:

    [DllImport("coredll.dll", SetLastError = true)]
    static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

    byte VK_VOLUME_MUTE = 0xAD;
    const int KEYEVENTF_KEYUP = 0x2;
    const int KEYEVENTF_KEYDOWN = 0x0;
    private void button1_Click(object sender, EventArgs e)
    {
            keybd_event(VK_VOLUME_MUTE, 0, KEYEVENTF_KEYDOWN, 0);
            keybd_event(VK_VOLUME_MUTE, 0, KEYEVENTF_KEYUP, 0);
    }

Этот код не работает. Я знаю, что есть другой способ отключить / включить звук с помощью SendMessageW, но я не хочу использовать SendMessageW, потому что я использую KeyState для определения, нужно ли мне отключить звук или включить звук (если пользователь хочет включить звук, а он уже включен тогда мне не нужно переключаться - вот почему мне нужно имитировать нажатие клавиши VolumeMute)

Спасибо.

5
задан Ron 23 January 2011 в 16:12
поделиться