问题标签 [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.

0 投票
2 回答
7756 浏览

c# - SlimDX DirectInput 初始化

我最近使用 Direct3D 11 从 MDX 2.0 切换到 SlimDX,但我在努力实现键盘和鼠标控制。

在 MDX 中,您可以使用

设置键盘界面,但是 SlimDX 有不同的方法。在 SlimDX 中,Device 是一个抽象类,取而代之的是一个必须通过传入 DirectInput 对象来初始化的 Keyboard 类,但我终其一生都无法弄清楚如何创建 DirectInput 对象或它的用途。

据我所知,SlimDX 的文档非常少,如果有人知道任何用于学习其特殊怪癖的好资源,那将是非常棒的,谢谢。

0 投票
2 回答
1931 浏览

c++ - DirectInput8Create 失败:E_INVALIDARG

我将 DirectInput 与 Direct3D 11 一起使用,并为 x64 进行编译,我从这一行得到一个 E_INVALIDARG:

当我设置一个断点来查看正在发生的事情时,我没有发现任何无效参数的迹象。我的 hInstance 是有效的,_d8Input 指针也是有效的,并且 DIRECTINPUT_VERSION 设置为 0x0800。

我之前使用过 D3D9 的直接输入,方式完全相同,没有任何问题。我错过了什么?

谢谢。

0 投票
2 回答
1508 浏览

windows - 捕捉“全局热键”(Windows)

现在,我一直在尝试创建与 Push-To-Talk 语音聊天应用程序类似的功能,但到目前为止,我找不到任何合适的解决方案。我没有使用 MFC 或 CLR。

问题很简单。我的窗口通常应该没有焦点(即最小化等),但我需要对按键做出反应(基本上,我什至不想知道按钮是否被按住)。不幸的是,WM_KEYDOWN 仅在窗口具有键盘焦点时才有效。我确实知道,例如 Teamspeak 为此使用 DirectInput,但我也知道没有它也绝对可以完成,这是我非常喜欢的。

我可以使用的唯一其他解决方案是使用 GetAsyncKeyState 进行轮询,但看起来这也不是一个好的解决方案。如果可能的话,我仍然更喜欢使用 Windows 消息。

0 投票
1 回答
248 浏览

c++ - 为什么我的 DirectInput8 堆栈溢出?

整个程序太复杂,无法在这里展示。基本上,只要注意我最近的 git commit 中的绿色亮点。我对 DirectInput 很陌生,所以我希望我犯了几个错误。我已经非常仔细地研究了 MSDN 文档,所以我保证我不会只是把它扔在那里并在上面标记 FIX IT FOR ME。:)

基本上,我认为我已经将我的问题缩小到 Engine::getEvent 周围的代码区域(第 238 行+)。我不明白这些功能是如何工作的,并且我已经弄乱了某些部分以实现不同的结果。我的目标是直接读取键盘事件并将这些原始数字输出到屏幕上(稍后我将处理数字的含义)。这里的问题与 KEYBOARD_BUFFER_SIZE 有关。如果我把它变小,程序似乎运行良好,但它不输出任何事件。如果我把它变大,它会运行得更好一些,但它开始变慢然后冻结(OpenGL 窗口只有一个旋转的颜色立方体)。如何正确捕获键盘事件?

我检查了代码中所有设置步骤的返回值。他们都返回 DI_OK 就好了。

0 投票
1 回答
9012 浏览

c++ - c++ win32 用 DirectInput 模拟按键

如何使用 DirectInput 模拟按键?我目前有初始化(但我不确定它是否好):

那么有人可以告诉我如何模拟例如在游戏中按下左箭头键吗?

0 投票
1 回答
1910 浏览

vbscript - 使用 VBScript 在 DLL 上调用和执行函数

我的目标 DLL 文件是 Microsoft DirectInput dll 文件,它位于:C:\Windows\System32\Dinput.dll

我已经监视了一个将其用于 API 的应用程序。我只是看到它在 Dinput.dll 上调用了“DirectInputCreateEx”,但我没有找到任何其他有用的信息。

现在我想使用 VBScript 在 Dinput.dll 上调用并执行“DirectInputCreateEx”。

这可能吗?如何?

0 投票
0 回答
491 浏览

xbox360 - 用手机模拟 Xbox 360 控制器

我正在为 symbian 手机开发一个应用程序来模拟 Xbox 360 控制器。

我已经完成了所有必要的连接,并且我正在使用SendInput()它来模拟鼠标,因为 AFAIKSendInput只能模拟键盘和鼠标。我正在考虑使用手机的加速度计作为模拟操纵杆来控制电脑。我必须编写驱动程序还是微软提供的api?

谁能指出我正确的方向?

0 投票
1 回答
2172 浏览

c# - C#中的直接输入

大家好,我想在我的 c# 程序中使用直接输入,以便我可以与某些游戏控制器进行交互,但是我看起来高低似乎找不到

Microsoft.DirectX.DirectInput.dll

任何人都可以将我链接到它的包吗?

干杯

0 投票
1 回答
1416 浏览

delphi - 使用 Delphi 或 Pascal 从 DINPUT.Dll 调用 API 函数

我有一个使用来自 dinput.dll(直接输入)的 API 的程序,我已经对其进行了监控,结果是这样的:

API 名称:DirectInputCreateEx 模块名称:C:\Windows\system32\DINPUT.dll

关于另一个使用直接输入的程序:

API 名称:DirectInputCreateA 模块名称:C:\Windows\system32\DINPUT.dll

此 API 将更新此注册表项:

HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\DirectInput

我想知道如何使用 Delphi 编写只为 DirectInput dll 调用此 API 的代码?

非常感谢任何帮助...

0 投票
0 回答
1266 浏览

c++ - 带有笔记本电脑触摸板的 C++ DirectInput 鼠标滚轮

使用 DirectInput 时,我的理解是鼠标滚轮增量应该存储在 DIMOUSESTATE 对象 lZ 变量中。但是,当我使用笔记本电脑触摸板而不是带有滚轮的实际鼠标滚动时,似乎无法识别滚动,因为 1Z 始终保持为零。如果它甚至可以工作,是否有比使用WM_MOUSEWHEEL更好的解决方案?由于我目前在其余输入中使用 DirectInput,因此我希望保持一致并使用它,但是如何从触摸板获取滚动信息?

谢谢!