答案 0 :(得分:0)
我找到了解决方案,但我无法获得所有功能,尤其是游戏手柄模式。
解决方案是听取输入的设备键:
public MainPage()
{
Window.Current.Dispatcher.AcceleratorKeyActivated += Dispatcher_AcceleratorKeyActivated;
this.InitializeComponent();
}
private void Dispatcher_AcceleratorKeyActivated(Windows.UI.Core.CoreDispatcher sender, Windows.UI.Core.AcceleratorKeyEventArgs args)
{
var eT = args.EventType;
if (CoreAcceleratorKeyEventType.KeyUp == eT)
{
var key = args.VirtualKey.ToString();
switch (key)
{
case "Enter" :
//Do something
break;
case "255" :
//Do something
break;
default:
break;
}
}
}
我发现分配整数的键很难比较,因为似乎没有为它们注册虚拟键。所以我将虚拟键转换为字符串进行比较。
我发现整数值因设备而异,因此在另一个设置中“255”可能是“175”。我希望它从启动到启动都不会有所不同......
总而言之,这是满足我需求的可接受的解决方案。我觉得好像为设备编写我自己的驱动程序可能是最好的情况,但我没有时间在这个项目中这样做,也没有立即学习p / invoke和HID对象的subtilties。