Billentyűzet kijelentkezés

Kijelentkezteti az aktuális felhasználót billentyűparancsokkal.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ez a példa a Keyboard könyvtárat használja arra, hogy kijelentkezzen a felhasználói munkamenetből a számítógépén, amikor a Leonardo, Micro vagy Due készülék 2. kivezetése lehúzásra kerül. A vázlat szimulálja a két vagy három billentyű egyidejű lenyomását, majd kis késleltetés után elengedi azokat.

Megjegyzés: Amikor a Keyboard.print() parancsot használja, az Arduino átveszi a számítógép billentyűzetét! Annak érdekében, hogy ne veszítse el az uralmat a számítógépe felett, miközben vázlatot futtat ezzel a funkcióval, győződjön meg arról, hogy egy megbízható vezérlőrendszert állít be, mielőtt meghívja a Keyboard.print() parancsot. Ezt a vázlatot úgy tervezték, hogy csak akkor küldjön billentyűzetparancsot, ha egy kivezetést a földre húztak.

Hardver szükséglet

  • Arduino Leonardo, Micro vagy Due kártya

  • nyomógomb

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Az áramkör

Vázlat

A kód

Mielőtt feltölti a programot a kártyára, győződjön meg arról, hogy a jelenleg használt, megfelelő operációs rendszert rendeli hozzá a platformváltozóhoz.

Amíg a vázlat fut, a gomb megnyomásával a 2-es kivezetés a földhöz kapcsolódik, és a kártya elküldi a kijelentkezési szekvenciát az USB-hez csatlakoztatott számítógépre.

/*
  Keyboard logout

  Ez a vázlat a Keyboard könyvtárat mutatja be.

  Amikor a 2. kivezetést a földhöz csatlakoztatja, kijelentkezik.
  Ehhez billentyűzetkombinációkat használ, az alábbiak szerint:

  Windows rendszeren: CTRL-ALT-DEL, majd ALT-l
  Ubuntu esetén CTRL-ALT-DEL és ENTER
  OSX-en CMD-SHIFT-q

  Ébresztés: szóköz.

  Az áramkör:
  - Arduino Leonardo vagy Micro
  - vezeték a D2 földhöz csatlakoztatásához

  created 6 Mar 2012
  modified 27 Mar 2012
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/usb/KeyboardLogout
*/

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

#include "Keyboard.h"

// módosítsa ezt, hogy megfeleljen a platformnak:
int platform = WINDOWS;

void setup() {
  // tegye a 2-es érintkezőt bemenetté, és kapcsolja be a felhúzó ellenállást,
  // hogy magasra menjen, hacsak nincs földelve:
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  while (digitalRead(2) == HIGH) {
    // ne csináljon semmit, amíg a 2. kivezetés LOW-ra nem megy
    delay(500);
  }
  delay(1000);

  switch (platform) {
    case OSX:
      Keyboard.press(KEY_LEFT_GUI);
      // Shift-Q kijelentkezés:
      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 a logout megerősítéséhez:
      Keyboard.write(KEY_RETURN);
      break;
  }

  // ne csinálj semmit:
  while (true);
}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.