问题标签 [directinput]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
controller - DirectInput PS3 控制器
我正在使用 DirectInput 来访问游戏手柄/操纵杆作为多个应用程序的输入设备。大多数操纵杆都可以识别,并且可以通过 DirectInput 访问发送的数据,除非我使用的是 PS3 Controlelr(不,控制器没有损坏,因为我有两个并且都测试过)。PS3 控制器被识别为操纵杆,但 DirectInput 没有数据传输。有人知道使用 PS3 控制器时是否还需要其他东西吗?
windows - 独家直接输入
我正在尝试构建一个对游戏手柄具有独占访问权限的应用程序。这意味着当我的应用程序运行时,没有其他应用程序将接收或响应游戏手柄操作,如按钮按下、滚轮移动……
我目前的方法是使用 DirectInput,设置标志:DISCL_EXCLUSIVE | DISCL_BACKGROUND。
但是,我意识到 DISCL_EXCLUSIVE 似乎没有效果?每当我设置 DISCL_EXCLUSIVE 或 DISCL_NONEXCLUSIVE 它都是一样的。
昨天我发现了这个:http ://www.gamedev.net/topic/656250-directinput-exclusive-access-to-joypad/ 根据他提到的,这个标志什么都不做?
那么我的问题还有其他解决方案吗?谢谢。
windows - 如何在 Windows 系统中甚至从窗口管理器中独占 HID 设备
对不起,我是窗口技术的新手。我现在可以通过 RawInput 或 DirectInput 从设备读取输入数据。但是,我担心:我想要一个服务(称为 X )可以从游戏手柄(ForeGround 和 BackGround 状态)读取数据。X 可以断开 Window manager 和 Gamepad 之间的关联吗?谢谢
c# - DirectX 游戏挂钩
我正在尝试在游戏中模拟鼠标事件。游戏使用 DirectInput,因此您不能使用 SendMessage 向其发送鼠标事件/键盘事件,这基本上就是我必须加入游戏的原因。
另外我不想使用 SendInput/mouse_events,游戏必须在后台运行并制作鼠标事件。
我已经设法在游戏中制作了一个 DLL 挂钩,但现在下一个问题是我必须制作鼠标事件和键盘(可能是主要问题)。
提前致谢。
c++ - 无法从虚拟键码转换为 unicode
我需要将文本注入到直接输入应用程序中。我正在使用 SendInput,但使用虚拟键码不适用于直接输入,所以我需要使用 Unicode。现在,我不想注入的键在文件中注册为虚拟键码,我需要将它们实时转换为 Unicode。
这是我的代码字符串。vk 是 int 中的虚拟键,buffer 是wchar_t数组大 1 单元。我不能只使用一个简单的wchar_t,因为它不适用于ToUnicode。但是,这个函数每次都只返回 0,这意味着该函数无法翻译密钥。作为记录,我使用的是标准键,例如“wasd”,没有特殊字符。如果有人能弄清楚为什么会发生这种情况,我真的很想得到一些帮助。
感谢您的考虑!
编辑:另外,与我的懒惰作斗争并编写一些旧的开关和中断来转换值是否方便?例如。
winapi - DIDEVICEINSTANCE的guidProduct字段是如何生成的
DirectInput 如何为 DIDEVICEINSTANCE 中的 guidProduct 字段生成 GUID?文档内容如下:
指导产品
产品的唯一标识符。该标识符由设备制造商建立。
我正在寻找一种在不使用 DirectInput 的情况下检索或合成操纵杆的产品 GUID 的方法。我已成功使用 RawInput 检索设备路径和类 GUID,但我还没有找到使用 RawInput 和/或 SetupDi* 函数检索产品 GUID 的方法。
在搜索时,我注意到MAKELONG(VID, PID) == guidProduct.Data1
,这让我希望有办法做我想做的事(毕竟 DirectInput 以某种方式做到了。)
问题:
- 是否有用于检索 HID(尤其是操纵杆)设备的产品 GUID 的 API?
- 如果没有,有谁知道 DirectInput 如何合成这个字段?(第一个字段结合了 VID 和 PID。其余的呢?)
编辑:
通过对 guidProduct 字段进行破解,我发现了一个有趣的发现。P880 USB 游戏手柄的产品 GUID 具有以下格式:
前 4 个字节显然是控制器的 PID 和 VID。GUID 的最后一部分对于我拥有的所有 HID 控制器都是通用的。过了一会儿,我恍然大悟——它们是 ASCII 字符!译文是:
我已经使用 SDL2 游戏控制器数据库验证了这一点,它似乎成立了!当然,这不包括蓝牙设备(例如OUYA控制器),这只是一个小问题。
有谁知道 guidProduct 是如何为蓝牙设备组成的?
directx - DX 11 中的 SetCooperativeLevel 等价物
我试图弄清楚 SetCooperativeLevel 在 DX11 中是否仍然可用。如果不再支持,从输入设备获取独占输入的新 API 是什么?谢谢。
visual-c++ - 在 DirectInput 中编程操纵杆
我正在编写应用程序来使用 DirectInput 和 MFC 对操纵杆进行编程。我找到了一个脚本如何做到这一点,但我有一个问题。当我想枚举设备以找到操纵杆时,我使用正确的函数“EnumDevices”和参数“enumCallback”,这也是一个函数。我现在不应该调用该函数,但通常它可以工作。我现在不知道出了什么问题。感谢帮助!
错误 C3867:“Joystick::enumCallback”:函数调用缺少参数列表;使用 '&Joystick::enumCallback' 创建指向成员的指针
unity3d - Unity 中的 SharpDX.Direct 输入
我一直在尝试使用 SharpDX.DirectInput dll 将 DirectInput 实现为统一,但是当我创建操纵杆时,它给了我一个错误:
这是我的代码:
}
当我创建操纵杆时发生错误:
c - “EnumDevices”:不是“IDirectInput8A”的成员
我正在尝试枚举 DirectInput 中的操纵杆。
仅供参考 - 这是使用 C 编译器的 ac 文件。
我收到了这些奇怪的错误。
第一个是指开始的行di->EnumDevices...
第二个是指IID_IDirectInput8
in DirectInput8Create
。
我玩过 UNICODE 设置,看看它是否重要。没有。
这感觉像是非常基本的事情。