0

所以我收到了一个外部运动控制器设备(Myo),我希望创建一个应用程序,其中某些运动基本上会在全局范围内模拟击键或按键(与什么应用程序无关)。这将在我的程序在后台运行时发生,因此它可以接收运动输入并作为键盘按下输出。

一个例子是,如果我要在前台(也是全屏)玩棒球比赛并且我做一个投球动作,程序将输出将在游戏中投球的键(无论它可能是哪个键)。

我已经查看了 C# 中的 SendKeys 类,但我觉得它的功能可能存在限制(特别是全局按键发送)。

有没有一种好方法可以让我编写一个程序,以便我可以使用我的运动控制器将动作映射到使用 C# 的按键?如果它可以为密钥持有做 key_down 和 key_up 也很好。

4

2 回答 2

0

我知道这不是 C# 解决方案,但 Myo Connect 中的Myo Script接口本质上就是为此目的而构建的,如果不出意外,这可能是测试事物的最简单方法。

要使用 Myo Script 发送键盘命令,您可以使用(此处myo.keyboard()的文档)。

如果您希望脚本始终处于活动状态,则需要始终注意并注意脚本在应用程序管理器中的位置return trueonForegroundWindowChange()将首先检查应用程序管理器顶部的脚本,因此如果上面有另一个“想要”控制给定应用程序的脚本,您的脚本可能会丢失。

于 2015-01-16T22:32:08.090 回答
0

实现真正的全局按键最直接的方法是模拟键盘。这将涉及创建一个键盘驱动程序,以某种方式提供对您的后台程序的访问。然而,这涉及到相当复杂的内核编程。

另一种方法是使用SendKeysAPI 结合一些逻辑来查找当前活动的应用程序。

于 2015-01-16T21:17:55.383 回答