如何在未聚焦的窗口上接收XInput游戏手柄状态?

时间:2015-10-11 17:29:55

标签: c++ windows gamepad xinput

场景:我为我的四轴飞行器编写了一些基本的控制程序。基本上,我使用连接有游戏手柄的笔记本向我的四轴飞行器发送命令,两者都通过无线电相互连接。这个设置效果令人惊讶,但是:

问题:即使窗口未对焦,我的笔记本电脑上运行的Win32应用程序如何才能收到游戏手柄状态更改?我知道像AutoHotKey和AutoIt这样的程序提供了这一点,但我无法在官方XInput文档和互联网上找到任何文档。

问题是,我有时也会在同一台笔记本上同时使用ArduPilot的Mission Planner软件。因此,每当我想在Mission Planer中查看一些遥测数据时,处理游戏手柄的应用程序窗口就会失去焦点,并且它会停止接收游戏手柄状态更改,这非常烦人,而且,说实话,也有点危险,因为我应该随时都有无线电控制。

那么,是否有办法锁定" gamepad XInput到特定的窗口句柄? (Win32)应用程序是用C ++用Visual Studio编写的。

编辑:我使用本机XInput API,因此我使用XInputGetState()。我的Message循环用于每次没有Message to Translate- / DispatchMessage()时轮询XInputGetState(),并使用非阻塞PeekMessage()轮询WinMessages。

0 个答案:

没有答案