-
正常安装的arduino中,DigiKeyboard.h在路径为C:\Users\[你的用户名]\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkKeyboard里。
- 在第63行注释里有说到"Keyboard usage values, see usb.org's HID-usage-tables document, chapter 10 Keyboard/Keypad Page for more codes."翻译过来就是"键盘使用值,请参阅usb.org的HID使用表文档,第10章键盘/小键盘页面了解更多代码",就是说在usb.org里有一个"HID使用表文档",并且Digispark用的都是HID的标准的键值,我们可以参照文档上的来定义更多按键。打开https://www.usb.org/,如下图
- 点右上角那个"Document Library",如下图
- 搜索关键词"usage"就可以找到这个文档,第一个就是"HID Usage Tables 1.22",然后点进这个文档,如下图
我的Chrome浏览器里是这样子的,然后点左边那个列表视图(不同浏览器基本大同小异)
- 选到第10章"Keyboard/Keypad Page (0x07)",就是第83页
- 在这里可以找到键盘上每个对应的Usage ID,再回头看DigiKeyboard.h文件,会发现上面定义的值都跟表上的一样,可能上面那一部分的定义代码看不懂,但是下面那些就是对应表上的了
- 然后在表上找到Delete键对应的Usage ID
- 我试了好几次,找了些资料来看,发现这个定义的值得是整数,但是表里给的是"4C",后来我终于在一篇文章里找到了(我自己摸索出来的,文章里没有提到这个问题),文章链接https://www.jianshu.com/p/7a9c3c7cb06e,找到了之前的"HID Usage Tables 1.12"文档(链接放底下了),内容大同小异,但是同样的表多出了一列Usage ID,然后这多出的一列是重点,此时Delete键对应的多出来的那一列的Usage ID就是了76,如下图
- 于是我们终于可以在DigiKeyboard.h里添加一行定义代码"#define KEY_DELETE 76",如下图
- 然后就可以在Arduino里用刚定义的键了,代码如下
- #include "DigiKeyboard.h"
- void loop() {}
- void setup() {
- DigiKeyboard.delay(3000);
- DigiKeyboard.sendKeyPress(KEY_DELETE,MOD_CONTROL_LEFT|MOD_ALT_LEFT);
- DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyPress(0); - }
- 如下图
然后就可以将程序烧录进开发板啦!如下图
然后插入电脑里就可以模拟按下Ctrl+Alt+Delete键啦!(插进去得等一几秒钟才会按)
本文用到的链接:
HID Usage Tables 1.22:https://www.usb.org/sites/default/files/hut1_22.pdf
HID Usage Tables 1.12下载:https://pan.baidu.com/s/1zvGHGL345c37TsEsmsj0kg
参考文章①《Digispark未定义按键的使用》:https://www.jianshu.com/p/7a9c3c7cb06e②《详解如何基于Arduino兼容板Digispark实现虚拟键盘与鼠标》:https://blog.csdn.net/bjbz_cxy/article/details/120322499
- 在第63行注释里有说到"Keyboard usage values, see usb.org's HID-usage-tables document, chapter 10 Keyboard/Keypad Page for more codes."翻译过来就是"键盘使用值,请参阅usb.org的HID使用表文档,第10章键盘/小键盘页面了解更多代码",就是说在usb.org里有一个"HID使用表文档",并且Digispark用的都是HID的标准的键值,我们可以参照文档上的来定义更多按键。打开https://www.usb.org/,如下图
如本站内容“对您有用”,欢迎随意打赏,让我们持续更新!
打赏