【问题标题】:How to convert a USB device button to simulate keyboard button in C#?如何在 C# 中将 USB 设备按钮转换为模拟键盘按钮?
【发布时间】:2011-08-11 20:34:52
【问题描述】:

我有一个带有播放、暂停、停止等按钮的数字麦克风。我可以使用它的 SDK“监听”这些按钮上的事件。但我想在网页上使用这些按钮。

在我的网页中,我可以“聆听”多媒体键盘按键,例如播放、暂停和停止。所以我想映射麦克风按钮,以便按下按钮实际上会创建一个由键盘上相应键创建的事件。

例如,如果我按下 USB 麦克风上的“暂停”按钮,则应触发键盘“暂停按钮”事件。我怎样才能做到这一点?我必须为此创建一个 Windows 服务吗?

【问题讨论】:

  • 如果它是 HID 输入/键盘,它应该已经可以工作了。

标签: c# events usb


【解决方案1】:

我会研究 SendInput 函数。

或者更老更简单的keybd_event

虽然 MS 建议使用 SendInput,但我可能会使用 keybd_event,因为它的本机互操作看起来要容易得多。在我看来,SendInput 的主要优势在于它在一次调用中支持多个输入。但无论如何你都不需要。

【讨论】:

    【解决方案2】:

    阅读 windows 钩子。它们可用于模拟键盘事件等。大部分代码都是用 c++ 编写的,但我相信你可以在 C# 中找到为这些函数提供包装器的库

    【讨论】:

    • 钩子周围有很多复杂性,所以我无法解释如何准确解决您的问题,但这些链接应该是一个很好的起点,祝您好运!
    • 如果您对答案有其他信息,请将它们添加到答案正文(使用edit 链接)而不是添加 cmets。如果您现在将 cmets 编辑到正文中,您可以通过鼠标悬停评论时出现在您自己的 cmets 旁边的交叉圆圈图标删除 cmets。
    • P.S 您将必须拦截 USB 按钮的事件并调用例如“暂停”按钮的处理程序。至少这是我在简单地使用 AutohotKey 解决我的问题之前正在调查的内容特殊问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多