JSRUN 用代码说话

键盘注销

编辑教程

键盘注销

本示例使用键盘库将你在计算机上的用户会话注销,此时ARDUINO UNO上的引脚2被拉至接地。草图同时按两个或三个按键的顺序模拟按键,并在短暂的延迟之后释放它们。

警告 - 当你使用 Keyboard.print()命令时,Arduino接管你的计算机键盘。为确保在使用此功能运行草图时不会失去对计算机的控制,请在调用Keyboard.print()之前设置可靠的控制系统。此草图旨在在引脚被拉至接地后才发送键盘命令。

必需的组件

你将需要以下组件:

  • 1 × Breadboard 面包板
  • 1 × Arduino Leonardo, Micro, 或Due板
  • 1 × 按钮
  • 1 × 跳线

程序

按照电路图连接面包板上的组件,如下图所示。

面包板

草图

在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。

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

Sketch

注意 - 你必须在Arduino库文件中包含键盘库。将键盘库文件复制并粘贴到名为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);
}

代码说明

在将程序上传到你的板之前,请确保将正在使用的正确操作系统分配给平台变量。

在草图运行时,按下按钮将引脚2接地,而板将发送注销序列发送到USB连接的PC。

结果

当将引脚2接地时,它将执行注销操作。

它使用以下键盘组合注销:

  • Windows 上,按CTRL-ALT-DEL,然后按ALT-l
  • Ubuntu ,CTRL-ALT-DEL和ENTER
  • OSX 上,CMD-SHIFT-q
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟