问题标签 [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.
c++ - Ctrl+Alt+Del 和 DirectInput
我在 C++ 中使用 DirectInput 为我的程序获取鼠标和键盘。这工作正常,如果我收到 InputLost 错误,我会重新获取。
但是,当我按下Ctrl++Alt时,Del我的程序会E_ACCESSDENIED
在尝试获取时获取,即使重新选择程序窗口也是如此。即使我实际上没有在 ++ 窗口中选择一个选项(只需按取消),也会发生Ctrl这种情况Alt。Del
我很好奇程序在发生这种情况后如何恢复输入。我目前正在运行 Windows 7。
c# - 如何使用 directInput 发送释放键?
我想使用直接输入发送键。我能够发送按键。但是我不知道如何发送按键释放以避免保持按键被按下。
这是我的代码:
注意:我在 DirectInput 应用程序中尝试使用 SendInput API 模拟键盘,但无法使其工作
c++ - 额外的 10 键键盘的单独输入
我正在用 C++ 编写 Windows DirectX 11 软件,我希望接收来自常规键盘和 10 键键盘的输入。我希望次要用户能够从 10 键键盘进行输入,而不会中断主要用户对全键盘的使用。例如,如果主要用户正在输入文本框,我希望次要用户能够将 10 键数据发送到软件单独处理,这样它就不会影响文本框输入。
我目前正在为鼠标和键盘使用 DirectInput。但如果有人知道通过 Windows API 的解决方案,我也会考虑这一点。
当我在 DirectInput 中创建键盘设备时,我当前使用的是 GUID_SysKeyboard 值,它将两个键盘合二为一,因此我的软件无法识别键盘输入的来源。是否可以使用 EnumDevices 来识别两个键盘并创建单独的 DirectInput 设备?我想会是这样,但我不确定如何从提供给 EnumDevices 回调的 DIDEVICEINSTANCE 结构中识别每个设备。我想让它尽可能通用,以便它可以与不同组合和型号/品牌的键盘一起使用。
提前感谢您的任何帮助或建议!
(注意:我在GameDev.net上发布了同样的问题)
c++ - win32 C++项目中的输入超时
如果按键之间的时间过长,我正在尝试找出使输入超时的最佳方法。我应该创建一个 cheatTime 浮点数,每次调用更新时都会增加 delta 吗?很晚了,我累了,我的大脑被炸了。任何帮助,将不胜感激。m_pDI
是一个 DirectInput 包装对象。在该类中,我有一个ClearInput()
函数可以清除其缓冲区内的任何输入。
windows - DirectX / Windows:强制关闭应用程序时无法专注于任务管理器
这个问题可能表明对 Windows 中的 DirectX 编程存在根本性的误解,但我遇到了一些我无法弄清楚的问题。我的程序在全屏运行时,有时会处于奇怪的状态,我必须强制关闭应用程序(CTRL+ALT+DEL)。
问题是当我按CTRL+ALT+DEL时,会出现任务管理器,但我不能使用鼠标;键盘一开始可以工作,但如果我用鼠标单击任务管理器窗口,它会失去焦点,我无法再重新获得焦点。该应用程序也不会最小化自身(Windows 应用程序编程问题?)
我的应用程序是否有可能窃取鼠标的专有财产?我正在使用 DirectInput,但应用程序根本不处理鼠标输入。此外,此问题仅在全屏运行应用程序时发生。如果我在窗口中运行它,一切都很好。
如果重要的话,我使用的工具是 MS Visual Studio 12、Windows 8 和 DirectX 9。
c++ - 为什么我无法使用 DirectInput 获取键盘?
我今天刚开始接触 DirectInput,在 Windows 7 Ultimate N 上使用 DirectInput8 和MinGW。我从一个简单的程序开始,每秒报告哪些键当前处于关闭状态(只是代码,不可读的键)。但是,我什至无法在键盘出错之前获得它:
我省略了错误检查,但发生的情况是每次调用都成功(根据FAILED
宏的判断)直到Acquire()
. 该调用因错误而失败DIERR_INVALIDPARAM
。我查看了 MSDN 页面和整个网络,但我找不到任何原因,基于它存在和工作之前的所有内容,它会失败。
为了更好地衡量,我还尝试循环Acquire()
调用,直到它成功,然后在它运行时使用 windows 和键盘,但程序在它运行的所有时间都没有成功获取键盘。如何成功获取键盘?
c++ - LoadLibrary 导致访问冲突
我正在尝试创建一个代理 dinput8.dll 以允许在游戏中重新映射键盘,并拼凑了一些说明等以提出以下内容:
它链接的模块定义文件如下:
该项目构建良好并生成 DLL,然后我将其放在 originaldinput8.dll(C:\Windows\SysWOW64\dinput8.dll 的重命名版本)旁边并运行游戏。但它立即崩溃 - 调试器运行会在调用 LoadLibrary 时产生以下错误。
这以前是有效的(在我使用 64 位原始 DLL 而不是 32 位的问题之后)但不知何故它现在已经停止工作,我不确定问题是什么。
我认为查找 DLL 文件不是问题 - 删除 DLL 文件或使用错误的文件会导致 LoadLibrary 失败而不会导致崩溃,错误代码 193。
有任何想法吗?
keyboard - Unity3D 游戏构建中没有键盘输入
我正在使用 Unity3D,并且在“构建”项目时遇到了键盘问题。
当我在 Unity 编辑器中运行游戏时,输入工作正常。但是,当我构建项目并对其进行测试时,我没有任何方向输入。鼠标工作正常,游戏注册击键(Esc 键有效),但玩家不会移动。
我正在使用Input.GetAxisRaw("Vertical")
和Input.GetAxisRaw("Horizontal")
我在网上研究了这个问题,但我仍然卡住了。我找到的唯一解决方案(在各种链接中)提到了 DirectInput 的一个问题,并指出您应该从[HKEY_CURRENT_USER\Software\Unity\Player]
Windows 注册表中删除键“Input”,但这似乎对我不起作用。
有没有其他人解决过这个问题?任何可行的解决方案?我做错了注册表技巧吗?
c++ - 根据按键修改相机位置
我有一个使用 DirectX 在屏幕上呈现图形的应用程序。使用以下代码设置第一人称的默认视图,将 Y 轴设置为 0。该代码包含在 Render() 之前调用的 SetupCamera() 函数中。
我正在使用 DirectInput 来管理用户输入。我希望能够允许用户按 SPACE 并将 Y 轴值更改为 90 以切换到自上而下的视图,然后再次按下以将其切换回来。我目前在我的 ProcessKeyboardInput() 函数中有以下代码,在 Render() 之前调用。
但我不确定我需要做什么来允许用户调整不中断渲染的值。我必须在这里遗漏一些简单的东西。任何帮助将非常感激。谢谢!
完整的 CameraSetup() 代码...
完整的 ProcessKeyboardInput() 代码...
c++ - DirectInput 8 链接错误
我正在尝试使用 DirectInput 来控制学校项目的小型 3D 应用程序上的相机移动。我在 VS2010 上使用 C++。
根据这个链接,我需要在我的项目属性上链接dxguid.lib和dinput8.lib 。所以,我添加了它们。
这导致 VS2010 无法读取dxguid.lib。因此,我必须从Microsoft 的下载页面下载并安装 DirectX SDK 。这导致了 S1023 错误,用微软的解决方案解决。
我不断收到其他编译错误,一些搜索将我带到了这个站点。在这样做之后,我现在只得到 2 个未解决的外部:
这是相关代码,取自第一个链接,稍作修改:
我所做的每次搜索都会返回到上面提供的相同解决方案或类似的解决方案。我找不到我没有做过的事情。任何人都可以提供一个想法吗?问题可能是我使用的是 Windows 8 吗?提前致谢。
更新
我设法通过使用解决了第一个问题
但第二个仍然存在,令我沮丧的是......