Windows Tasten mit Leonardo ausführen.

Hallo
Ich habe einen Fingerprint Sensor und einen Leonardo.
Damit bin ich jetzt soweit das ich windows entsperren kann.
Jetzt wollte ich die sache rund machen und mit einem erneuten scan windows wieder sperren.
Oder was wahrscheinlicher ist nachher auf einen kleinen taster legen der das auslöst.
Das geht am schnellsten wenn ich "Windows Taste + L" übermitteln könnte.
Ich nutze die Keyboard libarie und mit "KEY_HOME + 76" geht es nicht.
Ich kann ja auch 2 befehle nacheinander auslösen und erst nach dem zweiten beenden:

 Keyboard.press(KEY_HOME);
 Keyboard.press(76);
 delay(50);
 Keyboard.releaseAll();

Wie könnte das funktionieren ?

Die Windows-Taste ist KEY_LEFT_GUI

Ausloggen funktioniert bei mir zum Beispiel so:

Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('l');
delay(50);
Keyboard.releaseAll();

Hier noch ein kompletter lauffähiger Sketch.
“Auslogg-Taster” an D10 und GND:

#include "Keyboard.h"
const int LOGOUT_BUTTON = 10;

void setup() {
  Keyboard.begin();
  pinMode(LOGOUT_BUTTON, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(LOGOUT_BUTTON) == LOW) {    
    Keyboard.press(KEY_LEFT_GUI);
    Keyboard.press('l');
    delay(50);
    Keyboard.releaseAll();
  }
}

Klasse Funktioniert perfekt.
Genau das habe ich gesucht :slight_smile:
Ich dank dir vielmals !

Super, dass es funktioniert.
Danke für die Rückmeldung!

Ein Problem besteht aber Trotzdem !
Sobald ich im Windows zb. eine Textdatei öffne ,etwas schreibe und dann die datei schliesse wird mein Display das am Leonardo hängt weiss.

Irgendwie sind sie ja noch verbunden und der leonardo reagiert auf das was im Windows passiert.

EDIT: das macht er aber auch nicht immer (gerade getestet) könnte auch sein das er auf die Tastatur reagiert.

Man könnte ja "keyboard.begin" erst bei erfolgreichem scan ausführen und danach "keyboard.end" um die verbindung zu trennen. Oder die "Keyboard.h" irgendwie entladen.

Nur gibt es" keyboard.end" nicht.

Wie hast du das problem gelöst ?

Total-Newby:
Irgendwie sind sie ja noch verbunden und der leonardo reagiert auf das was im Windows passiert.
EDIT: das macht er aber auch nicht immer (gerade getestet) könnte auch sein das er auf die Tastatur reagiert.

Es tut mir leid, ich verstehe nicht was du meinst.
Der Leonardo verhält sich wie eine USB-Tastatur. Er reagiert nicht auf eine andere Tastatur.

Total-Newby:
Nur gibt es" keyboard.end" nicht.

Klar gibt es das: Keyboard.end()

Stimmt habe ich übersehen weil ich vorher mit der USBKeyboard libarie versucht habe und vielleicht war es da nicht drin. Ich habe es jetzt erstmal eingefügt.

Zur erklärung:
ich habe ein tft display am leonardo dort gebe ich dann infos aus damit man auch was grafisches hat.
Nur LCD zeilen waren mir etwas zu langweilig. Nun läuft das display einige zeit wenn ich mich im windows angemeldet habe. Dann wird es Plötzlich weiss und die grafiken sind weg.
Der leonardo ist nicht abgeschmiert weil der scan mit allen funktionen geht weiterhin.
Ich habe auch schon das bekannte "dingeling" gehört wenn windows ein gerät erkennt.
Vielleicht hat es auch mit dem com port zu tun das kann ich nichtmal genau sagen.
Habe den Ton auch nur einmel gehört als es weiss wurde die anderen male nicht.
Bin bischen ratlos woher das kommt.