#include "DigiKeyboard.h" #include #define KEYPAD_1 ( 89 | 0xF000 ) #define KEYPAD_2 ( 90 | 0xF000 ) #define KEYPAD_3 ( 91 | 0xF000 ) #define KEYPAD_4 ( 92 | 0xF000 ) #define KEYPAD_5 ( 93 | 0xF000 ) #define KEYPAD_6 ( 94 | 0xF000 ) #define KEYPAD_7 ( 95 | 0xF000 ) #define KEYPAD_8 ( 96 | 0xF000 ) #define KEYPAD_9 ( 97 | 0xF000 ) #define KEYPAD_0 ( 98 | 0xF000 ) int keypad[10] = {KEYPAD_0, KEYPAD_1, KEYPAD_2, KEYPAD_3, KEYPAD_4, KEYPAD_5, KEYPAD_6, KEYPAD_7, KEYPAD_8, KEYPAD_9}; void typeAltChar(char c){ digitalWrite(1, HIGH); char alt_code[4]; snprintf(alt_code, 4, "%d", c); // convert int to decimal int i=0; while(alt_code[i]!=0){ if(i > 0 && alt_code[i-1]==alt_code[i]){ DigiKeyboard.sendKeyPress(0,MOD_ALT_LEFT); // Release all keys except "ALT" } DigiKeyboard.sendKeyPress(keypad[alt_code[i]-'0'],MOD_ALT_LEFT); ++i; } DigiKeyboard.sendKeyPress(0,0); digitalWrite(1, LOW); } void typeAltString(char* string){ int i=0; while(string[i]!=0){ typeAltChar(string[i]); ++i; } } void setup() { pinMode(1, OUTPUT); // setup LED // setup keyboard DigiKeyboard.sendKeyStroke(0); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // WIN+R open run box DigiKeyboard.delay(300); // using ALT keys to be keyboard layout agnostic https://en.wikipedia.org/wiki/Alt_code typeAltString("echo test"); DigiKeyboard.sendKeyStroke(KEY_ENTER); } void loop() { }