C# 键盘上的特殊键

C# 键盘上的特殊键,c#,.net,input,keyboard,sendkeys,C#,.net,Input,Keyboard,Sendkeys,我的程序是否有办法“启动”键盘上的特殊键,如媒体键(播放、暂停、下一步等)。我正在尝试创建一个执行这些功能的应用程序,一个简单的方法就是模拟按键。如果让它更容易,这是一个个人项目,所以我不介意解决方案是否通用和/或不适用于所有键盘。我已经看过了,我想SDEKEY可能是一种方法,但我不知道扫描代码是什么特殊键。< / P> < P>下面的链接提供了在你的应用程序中使用多媒体键盘键的伟大想法,但是这篇文章是C++的,你必须自己找出如何使用这些函数。 编辑: 在这些文章的基础上,我实现了一些媒体功能键

我的程序是否有办法“启动”键盘上的特殊键,如媒体键(播放、暂停、下一步等)。我正在尝试创建一个执行这些功能的应用程序,一个简单的方法就是模拟按键。如果让它更容易,这是一个个人项目,所以我不介意解决方案是否通用和/或不适用于所有键盘。我已经看过了,我想SDEKEY可能是一种方法,但我不知道扫描代码是什么特殊键。< / P> < P>下面的链接提供了在你的应用程序中使用多媒体键盘键的伟大想法,但是这篇文章是C++的,你必须自己找出如何使用这些函数。 编辑: 在这些文章的基础上,我实现了一些媒体功能键,让您可以通过应用程序控制音量

    private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
    private const int APPCOMMAND_VOLUME_UP = 0xA0000;
    private const int APPCOMMAND_VOLUME_DOWN = 0x90000;
    private const int WM_APPCOMMAND = 0x319;
    private const int APPCOMMAND_MEDIA_PLAY_PAUSE = 0xE0000;


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

    public Form1()
    {
        InitializeComponent();
    }

    private void btnPlayPause_Click(object sender, EventArgs e)
    {
        SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
            (IntPtr)APPCOMMAND_MEDIA_PLAY_PAUSE);
    }

    private void btnMute_Click(object sender, EventArgs e)
    {
        SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
            (IntPtr)APPCOMMAND_VOLUME_MUTE);
    }

    private void btnDecVol_Click(object sender, EventArgs e)
    {
        SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
            (IntPtr)APPCOMMAND_VOLUME_DOWN);
    }

    private void btnIncVol_Click(object sender, EventArgs e)
    {
        SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
            (IntPtr)APPCOMMAND_VOLUME_UP);
    }
只要复制和使用你想要的任何地方


+1感谢您的链接。我没有C++的经验,所以不知道如何包含。我让C#代码正常工作,但我如何将该键“发送”到系统,使其看起来像是用户按下了它?您能否共享其他功能按钮,如play next、play previous、stop。。。。。。谢谢你看: