windows - 在失焦时接受输入

标签 windows winapi focus unity3d joystick

我从来没有真正在 Stack Overflow 上问过问题,尽管我遇到的几乎所有编程问题都在这里找到了答案。遗憾的是今天不是那些日子之一。

我整天都在谷歌搜索、浏览 win32 api 并尝试了各种方法,但就是找不到我要找的该死的答案。

情况是这样的:我创建了一个 Unity 项目,它使用来自操纵杆的输入,除了 unity 之外,这个项目还有其他组件,但这无关紧要,我的问题的根本是:如何我可以让应用程序在失去焦点/不活动时继续接受输入吗?

我知道这是可以做到的事实,因为 Borderlands 2 可以做到(昨天我第一次开始尝试寻找答案时发现了这一点,这让我很恼火,因为这证明了有办法,而且我找不到它)。

至少,如果有人知道如何对鼠标或键盘执行此操作,那将对我弄清楚如何将其应用于操纵杆很有帮助。

一些有用的细节:我是一名狂热且经验丰富的程序员,多年来我一直在使用 C/C++、C#、Java 和多种脚本语言编写代码。这是我的爱好,工作,业余时间,当我睡着的时候...

我做过/尝试过的事情:

  • 使用 user32 中的 SetFocus + SetActive 并传递 null 作为窗口 注意力不集中
  • WM_KILLFOCUS 添加到我想在后台读取输入的其他窗口的忽略列表
  • 使用sendmessage 欺骗其他窗口读取输入
  • 覆盖应用程序的 inputstream(但这是无用的意义,我无法弄清楚如何将操纵杆输入发送到 流,也是因为它仍然没有解决问题 如果其他应用程序失焦(即我打开记事本), 输入将停止。

  • 我还搜索了一种让 Unity 独立游戏/项目/应用程序在后台接受输入的方法,但没有任何结果。

最佳答案

不知道有没有Unity相关的解决方案,不过可以用RawInput API直接从鼠标/操纵杆/HID 硬件接收事件,无论您的应用是否处于焦点状态。

关于windows - 在失焦时接受输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259698/

相关文章:

c++ - 在模态对话框中显示图标

java - JTextArea 强制父级 JScrollPane 向下滚动

Jquery 关注第一个文本字段并将光标设置在值末尾以进行即时数据输入

android - 在列表适配器android中水平移动Edittext的焦点

linux - Windows 相当于查找最近 90 天内访问过的文件

c# - 使用 C# 设置和 LocalFileSettingsProvider 时公司名称中的下划线

c++ - 使用 C++ 的 Win32/MFC 命名约定

delphi - 如何在Delphi中连接(导入)WinApi函数

c# - 为什么我的控制台应用程序有命令历史记录?

c++ - 字符串到 LPCTSTR