一个关于arduino的keybord库的记录

一个关于arduino的keybord库的记录

一月 20, 2019

那天自己买到了一个 arduinoLeonardo板子听说能做badusb然后去网上查了资料就顺手备份一下_(:з」∠)_了

keyboard库,功能就是将arduino Leonardo模拟成一个usb键盘,Api如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
				【输入宏定位】					
#define KEY_LEFT_CTRL 0x80
#define KEY_LEFT_SHIFT 0x81
#define KEY_LEFT_ALT 0x82
#define KEY_LEFT_GUI 0x83
#define KEY_RIGHT_CTRL 0x84
#define KEY_RIGHT_SHIFT 0x85
#define KEY_RIGHT_ALT 0x86
#define KEY_RIGHT_GUI 0x87
#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9
#define KEY_LEFT_ARROW 0xD8
#define KEY_RIGHT_ARROW 0xD7
#define KEY_BACKSPACE 0xB2
#define KEY_TAB 0xB3
#define KEY_RETURN 0xB0
#define KEY_ESC 0xB1
#define KEY_INSERT 0xD1
#define KEY_DELETE 0xD4
#define KEY_PAGE_UP 0xD3
#define KEY_PAGE_DOWN 0xD6
#define KEY_HOME 0xD2
#define KEY_END 0xD5
#define KEY_CAPS_LOCK 0xC1
#define KEY_F1 0xC2
#define KEY_F2 0xC3
#define KEY_F3 0xC4
#define KEY_F4 0xC5
#define KEY_F5 0xC6
#define KEY_F6 0xC7
#define KEY_F7 0xC8
#define KEY_F8 0xC9
#define KEY_F9 0xCA
#define KEY_F10 0xCB
#define KEY_F11 0xCC
#define KEY_F12 0xCD

具体代码语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Keyboard.begin(); //开始

Keyboard.end(); //结束

Keyboard.press(); //按下

Keyboard.print("#"); ////模拟键盘敲出一个字符

Keyboard.println("#"); //模拟键盘敲出一个字符并添加换行的过程

Keyboard.release(); //松开

Keyboard.releaseAll(); //释放所有按键

Keyboard.write(); //仅支持键盘上的ASCII字符。

PS:Keyboard. press()和Keyboard.release()//请成对使用,防止出现按键被按下没有松开的情况

演示代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<Keyboard.h> //包含键盘模块头文件(放第一条,最高优先级)

void setup(); //初始化

Keyboard.begin();//开始键盘通信

delay(1000);//延时1000毫秒,不要太短,因为每台电脑的运行速度都不一样

Keyboard.press(KEY_CAPS_LOCK); //按下大写键 这里我们最好这样写 不然大多数电脑在中文输入的情况下就会出现问题

Keyboard.release(KEY_CAPS_LOCK); //释放大写键

delay(500);

Keyboard.press(KEY_LEFT_GUI);//按下徽标键 也就是win键

delay(500);

Keyboard.press('r');//按下r键

delay(500);

Keyboard.release(KEY_LEFT_GUI);//松掉win键

Keyboard.release('r');//松掉r键

delay(500);

Keyboard.println("cmd");//输入cmd进入DOS

delay(500);

Keyboard.press(KEY_RETURN); //按下回车键

Keyboard.release(KEY_RETURN); //释放回车键

delay(500);

Keyboard.println("hello world");

Keyboard.press(KEY_RETURN); //按下回车键

Keyboard.release(KEY_RETURN); //释放回车键

delay(500);

Keyboard.press(KEY_CAPS_LOCK); //按下大写键

Keyboard.release(KEY_CAPS_LOCK); //释放大写键 我们再次关闭开启的大写键

delay(500);

Keyboard.end();//结束键盘通讯