Arduino 鍵盤注銷

2018-11-20 18:17 更新

本示例使用鍵盤庫將你在計算機上的用戶會話注銷,此時ARDUINO UNO上的引腳2被拉至接地。草圖同時按兩個或三個按鍵的順序模擬按鍵,并在短暫的延遲之后釋放它們。

警告 - 當(dāng)你使用 Keyboard.print()命令時,Arduino接管你的計算機鍵盤。為確保在使用此功能運行草圖時不會失去對計算機的控制,請在調(diào)用Keyboard.print()之前設(shè)置可靠的控制系統(tǒng)。此草圖旨在在引腳被拉至接地后才發(fā)送鍵盤命令。

必需的組件

你將需要以下組件:

  • 1 × Breadboard 面包板
  • 1 × Arduino Leonardo, Micro, 或Due板
  • 1 × 按鈕
  • 1 × 跳線

程序

按照電路圖連接面包板上的組件,如下圖所示。

面包板

草圖

在計算機上打開Arduino IDE軟件。使用Arduino語言進(jìn)行編碼控制你的電路。通過單擊“New”打開一個新的草圖文件。

對于本例,你需要使用Arduino IDE 1.6.7

Sketch

注意 - 你必須在Arduino庫文件中包含鍵盤庫。將鍵盤庫文件復(fù)制并粘貼到名為libraries的文件(下圖高亮顯示)中,如以下屏幕截圖所示。

在Arduino庫文件中包含鍵盤庫

Arduino代碼

/*
   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 or Micro
   * wire to connect D2 to ground.
*/

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

#include "Keyboard.h"

// change this to match your platform:
int platform = WINDOWS;

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);
	  
      // 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 to confirm logout:
      Keyboard.write(KEY_RETURN);
      break;
   }
   
   // do nothing:
   while (true);
}

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 to confirm logout:
      Keyboard.write(KEY_RETURN);
      break;
   }
   
// do nothing:
   while (true);
}

代碼說明

在將程序上傳到你的板之前,請確保將正在使用的正確操作系統(tǒng)分配給平臺變量。

在草圖運行時,按下按鈕將引腳2接地,而板將發(fā)送注銷序列發(fā)送到USB連接的PC。

結(jié)果

當(dāng)將引腳2接地時,它將執(zhí)行注銷操作。

它使用以下鍵盤組合注銷:

  • Windows 上,按CTRL-ALT-DEL,然后按ALT-l

  • Ubuntu ,CTRL-ALT-DEL和ENTER

  • OSX 上,CMD-SHIFT-q


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號