| /* |
| Keyboard logout |
| |
| This sketch demonstrates the Keyboard library. |
| |
| When you connect pin 2 to ground, it performs a logout. |
| It uses keyboard combinations to do this, as follows: |
| |
| On Windows, CTRL-ALT-DEL followed by ALT-l |
| On Ubuntu, CTRL-ALT-DEL, and ENTER |
| On OSX, CMD-SHIFT-q |
| |
| To wake: Spacebar. |
| |
| Circuit: |
| * Arduino Leonardo |
| * wire to connect D2 to ground. |
| |
| created 6 Mar 2012 |
| modified 27 Mar 2012 |
| by Tom Igoe |
| |
| This example is in the public domain |
| |
| http://www.arduino.cc/en/Tutorial/KeyboardLogout |
| */ |
| |
| #define OSX 0 |
| #define WINDOWS 1 |
| #define UBUNTU 2 |
| |
| // change this to match your platform: |
| int platform = OSX; |
| |
| void setup() { |
| // make pin 2 an input and turn on the |
| // pullup resistor so it goes high unless |
| // connected to ground: |
| pinMode(2, INPUT_PULLUP); |
| Keyboard.begin(); |
| } |
| |
| void loop() { |
| while (digitalRead(2) == HIGH) { |
| // do nothing until pin 2 goes low |
| delay(500); |
| } |
| delay(1000); |
| |
| switch (platform) { |
| case OSX: |
| Keyboard.press(KEY_LEFT_GUI); |
| // Shift-Q logs out: |
| Keyboard.press(KEY_LEFT_SHIFT); |
| Keyboard.press('Q'); |
| delay(100); |
| Keyboard.releaseAll(); |
| // enter: |
| Keyboard.write(KEY_RETURN); |
| break; |
| case WINDOWS: |
| // CTRL-ALT-DEL: |
| Keyboard.press(KEY_LEFT_CTRL); |
| Keyboard.press(KEY_LEFT_ALT); |
| Keyboard.press(KEY_DELETE); |
| delay(100); |
| Keyboard.releaseAll(); |
| //ALT-s: |
| delay(2000); |
| Keyboard.press(KEY_LEFT_ALT); |
| Keyboard.press('l'); |
| Keyboard.releaseAll(); |
| break; |
| case UBUNTU: |
| // CTRL-ALT-DEL: |
| Keyboard.press(KEY_LEFT_CTRL); |
| Keyboard.press(KEY_LEFT_ALT); |
| Keyboard.press(KEY_DELETE); |
| delay(1000); |
| Keyboard.releaseAll(); |
| // Enter to confirm logout: |
| Keyboard.write(KEY_RETURN); |
| break; |
| } |
| // do nothing: |
| while(true); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |