我正在尝试使用DirectInput来捕获XBOX One控制器的输入信号,将其与C# WinForms应用程序相关联。我的问题是:当窗体获得焦点时,它可以很好地捕获输入信号。当窗口失去焦点时,我没有得到任何反馈。在Windows 7上,这不是一个问题。
我已经尝试在Windows 10上使用其他控制器:PS4、Logitech、方向盘等等...一切都符合预期:当窗口失去焦点时,我仍然可以得到反馈。只有XBOX One控制器在Windows 10上出现了问题。
我认为可能与这行代码有关:
我认为可能与这行代码有关:
dev.SetCooperativeLevel(_ctlParent, CooperativeLevel.Background | CooperativeLevel.Nonexclusive);
但即使我去掉这行代码,一切仍然表现得相同。
似乎XBOX One手柄忽略了“CooperativeLevel.Background”标志,并添加了“CooperativeLevel.Foreground”标志。这里有更多关于这些标志的信息。
是否有其他熟悉此问题并找到解决方法的人?