【问题标题】:Getting raw keyboard and mouse input in c++ without external library在没有外部库的情况下在 C++ 中获取原始键盘和鼠标输入
【发布时间】:2015-08-28 13:37:12
【问题描述】:

所以,我有一个问题;我试图弄清楚如何使用标准库或内联程序集在 C/C++ 程序中获取原始键盘或鼠标输入。我正在使用 Xubuntu 15 和 GCC/code::blocks 来构建我的程序。

我熟悉使用内联汇编,因此如果可以将特定寄存器或内存地址移动到仅包含当前鼠标位置或最后按下的键盘键的变量中(这必须包括特殊键像功能键或箭头键。)这对我的 C++ 项目非常有用。

最好与任何基于 OS/x86 的架构兼容。

【问题讨论】:

  • 您知道,如果您还提及您为什么要尝试做您想做的事情,这将对回答者有所帮助。有时可能有比您在问题中描述的更好的方法。
  • 我的最终目标是创建一个小型、快速和轻量级的 2d 游戏处理程序,有点像 SDL 或 SFML,但更小。
  • 你问题的最后一行肯定是不可能的。你可以用像 DOS 这样的实模式操作系统来完成这样的事情,因为 BIOS 处理这些输入设备,你可以直接访问保存圆形键盘缓冲区的内存,你可以触发一个 int 或设置一个中断向量处理鼠标输入,但使用现代保护模式操作系统,这永远不会发生。您将需要向操作系统询问这些值。

标签: c++ input


【解决方案1】:

在 Linux 世界中,你可以使用

  1. https://stackoverflow.com/a/13129698/4776786 这将在终端中工作。你按任意键就得到他的密码,不用按回车。

    http://asm.sourceforge.net/articles/rawkb.html - 汇编版本

  2. http://wiki.libsdl.org/SDL_GetKeyFromScancode 使用 SDL。或者在终端输入

    $: sudo apt-get source libsdl-image1.2-dev libsdl-mixer1.2-dev

获取 SDL 库的源代码,并亲自阅读它们如何处理键盘按键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2010-11-08
    • 2011-11-26
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多