gpt4 book ai didi

c# - 键盘上的特殊键

转载 作者:行者123 更新时间:2023-11-30 19:31:27 28 4
gpt4 key购买 nike

有没有办法让我的程序能够“触发”键盘上的特殊键,例如媒体键(播放、暂停、下一首等)?

我正在尝试创建一个执行这些功能的应用程序,一种简单的方法是模拟按下这些键。

这是一个个人项目,所以我不介意解决方案是否通用和/或不适用于所有键盘。

我环顾四周,我认为 SendKey 可能是一种方法,但我不知道这些特殊键的扫描码是什么。

最佳答案

以下链接提供了在您的应用程序中使用多媒体键盘键的好主意,但本文是针对 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);
}

只需复制并在任何地方使用。

Low-Level Keyboard Hook in C#

Using Multimedia Keyboard Keys in Your Own Program

关于c# - 键盘上的特殊键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181978/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com