场景:我为我的四轴飞行器编写了一些基本的控制程序。基本上,我使用连接有游戏手柄的笔记本向我的四轴飞行器发送命令,两者都通过无线电相互连接。这个设置效果令人惊讶,但是:
问题:即使窗口未对焦,我的笔记本电脑上运行的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。