W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本示例使用鍵盤庫將你在計算機上的用戶會話注銷,此時ARDUINO UNO上的引腳2被拉至接地。草圖同時按兩個或三個按鍵的順序模擬按鍵,并在短暫的延遲之后釋放它們。
警告 - 當(dāng)你使用 Keyboard.print()命令時,Arduino接管你的計算機鍵盤。為確保在使用此功能運行草圖時不會失去對計算機的控制,請在調(diào)用Keyboard.print()之前設(shè)置可靠的控制系統(tǒng)。此草圖旨在在引腳被拉至接地后才發(fā)送鍵盤命令。
你將需要以下組件:
按照電路圖連接面包板上的組件,如下圖所示。
在計算機上打開Arduino IDE軟件。使用Arduino語言進(jìn)行編碼控制你的電路。通過單擊“New”打開一個新的草圖文件。
對于本例,你需要使用Arduino IDE 1.6.7
注意 - 你必須在Arduino庫文件中包含鍵盤庫。將鍵盤庫文件復(fù)制并粘貼到名為libraries的文件(下圖高亮顯示)中,如以下屏幕截圖所示。
/* 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。
當(dāng)將引腳2接地時,它將執(zhí)行注銷操作。
它使用以下鍵盤組合注銷:
在 Windows 上,按CTRL-ALT-DEL,然后按ALT-l
在 Ubuntu ,CTRL-ALT-DEL和ENTER
在 OSX 上,CMD-SHIFT-q
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: