Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将传入的USB信号转换为按键/宏_C++_Macros_Usb_Signals_Voip - Fatal编程技术网

C++ 将传入的USB信号转换为按键/宏

C++ 将传入的USB信号转换为按键/宏,c++,macros,usb,signals,voip,C++,Macros,Usb,Signals,Voip,我正在寻找一个软件,或帮助从何处开始编码,它可以让您选择一个USB设备,并将其输出信号(当按下设备上的按钮时)转换为按键或可配置宏 更详细地说,我有一个遥控器(更准确地说,是一个USB手机/电话),它根据按下的按钮发送USB信号,我目前使用的软件将这些信号转换成按键或宏。然而,我目前使用的软件非常有限,不可配置且过时。我从该设备的CD中检索到的软件名为“USBPhone 5 in 1”,但在互联网上没有提及这一点 不幸的是,该设备没有商标,在互联网上的可视性也很低,因此我看不到是否有任何更新的软

我正在寻找一个软件,或帮助从何处开始编码,它可以让您选择一个USB设备,并将其输出信号(当按下设备上的按钮时)转换为按键或可配置宏

更详细地说,我有一个遥控器(更准确地说,是一个USB手机/电话),它根据按下的按钮发送USB信号,我目前使用的软件将这些信号转换成按键或宏。然而,我目前使用的软件非常有限,不可配置且过时。我从该设备的CD中检索到的软件名为“USBPhone 5 in 1”,但在互联网上没有提及这一点

不幸的是,该设备没有商标,在互联网上的可视性也很低,因此我看不到是否有任何更新的软件,甚至无法对其进行编辑


非常感谢您的帮助

你可以试试joyToKey,这个软件完全可以做你想做的事情,但要用gamedpad。我不知道它是否能与你的USB控制器配合使用


我认为您需要从基本了解USB标准和设备类开始。然后,您需要了解您的设备是否实现了特定的设备类或某些专有接口。然后,您需要为设备类使用驱动程序,或者实现专有驱动程序

USB是通用串行总线的缩写,它不是传输一些随机模拟数据,而是定义良好的数字数据包。该标准定义了音频设备的音频类、视频设备的视频类等。大多数设备实现一个或多个此类。对于键盘和鼠标,它定义了HID类,这很可能是您的设备实现的。您可以找到HID设备类的相关规范。这不是最简单的一个开始,但它应该工作时,您只需将设备插入您的PC,并打开例如记事本,并开始写作。列出了USB设备类别代码

为了找出您的设备实现了什么设备类,您需要阅读它的描述符。在Windows中,更简单的方法之一是使用。您可以从中阅读有关USB描述符的更多信息


您没有提到您的USB主机是什么(Windows或Linux PC、Mac或其他),因此我不打算讨论实际的USB驱动程序实现,但希望我能够为您提供一些可能需要的信息。在任何情况下,如果设备有一些专有的实现,您要么需要为其制定规范,要么通过监视USB数据包对其进行反向工程。市场上有很多昂贵的硬件解决方案用于分析USB流量,但也有一些免费的软件解决方案可能足以满足您的需要。快速谷歌搜索出现。

“寻找软件”将脱离主题,“从哪里开始编码”将是
int main()
。一般回答:我认为问题是“如何构建驱动程序”,这对于键盘来说是一个巨大的损失。如果你想分析数据包和信号,你需要一个CAN/总线分析仪和一个像wireshark这样的数据包读取器。这就是说,更深入地说,你要知道旧的PS2键盘更容易分析,因为它们的输出是模拟的。这意味着你可以用普通示波器分析信号。非常感谢您提供了这些非常有用的信息!我理解你所说的一切,我将利用你提供的大量资源继续满足我的要求。作为记录,主机是Windows。非常感谢你的帮助!不幸的是,该设备没有注册为游戏控制器,因此该软件对我没有任何用处。无论如何,非常感谢!