本文介绍了在Windows下,有没有办法手动将消息发送到USB键盘?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个涉及MCU-Windows通信的个人项目。MCU配置为充当HID键盘(无串口通信)。

阅读OS Dev's HID specifications以及Stack上的几个问题后,我注意到我的MCU可以检测到,在我的机器上没有运行其他软件的情况下,何时按下Caps Lock(想必对所有其他"LED键"都有效)。因此,当我按下Caps Lock时,LED会打开我的MCU。

我想知道是否有可能手动向MCU发送消息,就像闪烁LED一样,但包含我自己的内容。如有任何帮助,我们将不胜感激。

推荐答案

您可以使用SendInput切换大写锁定(或数字锁定)状态,如下所示:

INPUT inputs[2] = {};

const WORD wScanCodeCapsLock = 0x3a;
const WORD wScanCodeNumLock = 0x45;

inputs[0].type = INPUT_KEYBOARD;
inputs[0].ki.wScan = wScanCodeCapsLock;
inputs[0].ki.dwFlags = KEYEVENTF_SCANCODE;
inputs[0].ki.time = 1;

inputs[1].type = INPUT_KEYBOARD;
inputs[1].ki.wScan = wScanCodeCapsLock;
inputs[1].ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
inputs[1].ki.time = 100;
SendInput(2, inputs, sizeof(INPUT));

Check this answer out here,了解如何检测这些键的当前状态。

这篇关于在Windows下,有没有办法手动将消息发送到USB键盘?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-17 09:38