I wish I did this for April 1st, but here is it anyway 🙂 I wanted to test out the HID keyboard features of the Arduino Leonardo compatible Funky v2, so during my research on the subject I accidentally stumbled upon a project called “USB Ducky“; One of the example uses was to use the HID keyboard to run a bunch of commands when inserted into a USB port: It minimizes all windows to desktop, takes screenshot, disables desktop icons, saves screenshot in %userprofile% and sets it as wallpaper. The prank victim then tries to click on the desktop icons in vain, wondering what was going on 🙂 This only works for Windows, you will need to modify the code for other operating systems.
//Description: Minimizes all windows to desktop, takes screenshot, disables desktop icons, saves screenshot in %userprofile% and sets as wallpaper
void setup(){
delay(10000);
Keyboard.begin();
//Show desktop
Keyboard.press(KEY_LEFT_GUI);
Keyboard.write('d');
Keyboard.release(KEY_LEFT_GUI);
delay(300);
//Printscreen
Keyboard.write(0xCE);
delay(300);
//Invoke MENU
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.write(KEY_F10);
Keyboard.release(KEY_LEFT_SHIFT);
delay(300);
//Hide desktop icons
Keyboard.write('v');
delay(300);
Keyboard.write('d');
delay(300);
//Start Paint
Keyboard.press(KEY_LEFT_GUI);
Keyboard.write('r');
Keyboard.release(KEY_LEFT_GUI);
delay(700);
Keyboard.println("mspaint.exe");
//Keyboard.press(KEY_RETURN);
delay(1000);
//Paste
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.write('v');
Keyboard.release(KEY_LEFT_CTRL);
delay(500);
//Crop
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.write('x');
Keyboard.release(KEY_LEFT_SHIFT);
Keyboard.release(KEY_LEFT_CTRL);
delay(500);
//Save
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.write('s');
Keyboard.release(KEY_LEFT_CTRL);
delay(500);
//Save the screenshot
Keyboard.println("%userprofile%\\a.bmp");
delay(1500);
//File menu
Keyboard.press(KEY_LEFT_ALT);
Keyboard.write('f');
Keyboard.release(KEY_LEFT_ALT);
delay(400);
//Set the screenshot as wallpaper
Keyboard.write('k');
delay(300);
Keyboard.write('f');
delay(1000);
//Exit Paint
Keyboard.press(KEY_LEFT_ALT);
Keyboard.write(KEY_F4);
Keyboard.release(KEY_LEFT_ALT);
delay(400);
}
void loop(){
delay(7000);
}
Interesting stuff, also had me set a shorter timeout to lock my computer when I am not around..
