Keyboard Logout

En este ejemplo se utiliza la biblioteca de teclado que cierra la sesión de usuario en el equipo cuando el pin 2 en su Leonardo, Micro o Due se lleva a tierra. El dibujo simula la pulsación de teclas en secuencia de dos o tres teclas al mismo tiempo y después de un breve retraso los libera.
Nota: Cuando se utiliza el comando Keyboard.print (), el Arduino toma el control del teclado de su ordenador! Para asegurar que no pierda el control de su ordenador mientras se ejecuta un programa con esta función, asegúrese de establecer un sistema de control fiable antes de llamar Keyboard.print (). Este programa está diseñado únicamente para enviar un comando de teclado cuando un pin se pone a nivel LOW.

Hardware Requerido

  • 1 Placa Arduino Leonardo, Micro, o Due 
  • 1 Pulsador
  • Hilo para cabledo
  • 1 Protoboard

Circuito



Esquema
Código
Antes de cargar el programa en la placa, asegúrese de asignar el sistema operativo correcto que está utilizando actualmente para la variable "plataform".
Mientras que el programa se está ejecutando, pulse el botón para conectarel pin 2 a tierra y la placa enviará la secuencia de cierre de sesión al USB del PC conectado.
/*
  Keyboard logout

 Este propgrama muestra el yso de la biblioteca Keyboard

 Cuando se conecta el pin 2 a masa, se realiza un cierre de sesión.:
 Para ello utiliza las siguientes combinaciones de teclas
 En Windows, CTRL-ALT-DEL seguido de ALT-l
 En Ubuntu, CTRL-ALT-DEL, yENTER
 En OSX, CMD-SHIFT-q

Para reactivar: Barra espaciadora

 Circuito
 * Arduino Leonardo o Micro
 * cable para conectar D2 a masa.

 creado 6 Marzo 2012
 modificado 27 Marzo 2012
 por Tom Igoe

 Este código es de dominio público

 http://www.arduino.cc/en/Tutorial/KeyboardLogout
 */

#define OSX 0
#define WINDOWS 1
#define UBUNTU 2

#include "Keyboard.h"

// cambiar esto para adaprarlo a su Sistema Operativo:
int platform = OSX;

void setup() {
  // configura el pin 2 como entrada y activa
  // la resistencia pullup que pone el pin
a nivel HIGH
  // hasta que se conecte a masa:
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  while (digitalRead(2) == HIGH) {
    // no hace nada hasta que el pin 2 se lleva a nivel LOW
    delay(500);
  }
  delay(1000);

  switch (platform) {
    case OSX:
      Keyboard.press(KEY_LEFT_GUI);
      // Shift-Q para cerrar sesión:
      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-l:
      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 para confirmar el cierre de sesión:
      Keyboard.write(KEY_RETURN);
      break;
  }

  // no hace nada
  while (true);
}

No hay comentarios:

Publicar un comentario