所以我收到了一个外部运动控制器设备(Myo),我希望创建一个应用程序,其中某些动作将基本上模拟全局按键或按键(与哪个应用程序无关)。当我的程序在后台运行时会发生这种情况,因此它可以在键盘按下时接收动作输入和输出。
一个例子是如果我在前台(也是全屏)玩棒球比赛并且我进行投球动作,程序将输出将在游戏中进行投球的键(无论哪个键可能是)
我已经查看过C#中的SendKeys类,但我觉得它可能会有什么限制(特别是全局按键发送)。
有没有一种方法可以编写程序,这样我就可以使用C#将动作与动作控制器映射到按键?如果能够为关键持有做key_down和key_up也会很好。
答案 0 :(得分:0)
实现真正全局按键的最直接方法是模拟键盘。这将涉及创建一个键盘驱动程序,以某种方式提供对后台程序的访问。然而,这涉及内核编程,这非常复杂。
另一种方法是使用SendKeys
API结合某些逻辑来查找当前活动的应用程序。
答案 1 :(得分:0)
我知道这不是一个C#解决方案,但Myo Connect中的Myo Script接口基本上是为此目的而构建的,如果没别的话,它可能是最简单的测试方法。
要使用Myo脚本发送键盘命令,您可以使用myo.keyboard()
(文档here)。
如果您希望脚本始终处于活动状态,则需要在return true
中始终onForegroundWindowChange()
并注意应用程序管理器中脚本的位置。应首先检查应用程序管理器顶部的脚本,这样如果上面有另一个脚本,那么您的脚本可能会丢失,并且需要'控制给定的应用程序。