Schönen guten Tag,
Habe mir ein Arduino Leonardo Board gekauft um es zum Spielen am PC zu verwenden. Es soll einfache später auch schwierigere Maus- /Tastatureingaben ans System leiten.
Leider habe ich seit Tagen und Stunden es nicht geschafft.
Szenario1: Bei einem Tastendruck "r" (alternativ auch ein anderer Buchstabe oder auch mod+"r") soll Leonardo -> "r"-gedrückt halten, bis eine eine Taste, 1, 2, q, LMaus oder RMaus die schleife löst.
Szenario2:
Bei LM-Taste-gedrückt soll -> die linke LMaustaste in einer schleife gedrückt gedrückt werden.
Hier mal ein Beispiel.
#include <Mouse.h>
// Globale Variablen
bool MasterLock = false; // Masterlock (gesperrt/entsperrt)
bool AutoClickerActive = false; // Zustand des Autoclickers
bool MausClickLM = false; // Zustand des linken Mausklick
const int RangedDelay = 100; // Dauerfeuer-Verzögerung in Millisekunden
void setup() {
Serial.begin(9600); // Serielle Kommunikation starten
Mouse.begin();
Serial.println("Arduino AutoClicker gestartet!");
Serial.println("Befehle: m = MasterLock umschalten, 2 = AutoClicker aktivieren, 1/q = AutoClicker deaktivieren");
}
void loop() {
// Serielle Eingaben lesen
if (Serial.available() > 0) {
char input = Serial.read();
// MasterLock umschalten
if (input == 'm') {
MasterLock = !MasterLock;
AutoClickerActive = false; // AutoClicker deaktivieren
MausClickLM = false; // Schleife beenden
Serial.println(MasterLock ? "MasterLock aktiviert" : "MasterLock deaktiviert");
}
// AutoClicker aktivieren
if (input == '2' && !MasterLock) {
AutoClickerActive = true;
Serial.println("AutoClicker aktiviert");
}
// AutoClicker deaktivieren
if (input == '1' || input == 'q') {
AutoClickerActive = false;
MausClickLM = false; // Schleife beenden
Serial.println("AutoClicker deaktiviert");
}
}
// LM-Taste aktiviert Schleife - AutoClicker vorausgesetzt
if (AutoClickerActive && Mouse.isPressed(MOUSE_LEFT)) {
MausClickLM = true;
Serial.println("Feuer Frei!!");
}
// AutoClicker-Klicks ausführen, solange aktiviert
while (MausClickLM && AutoClickerActive) {
Mouse.click(MOUSE_LEFT); // Simuliere vollständigen Mausklick
delay(RangedDelay); // Pause zwischen den Klicks
// Schleife beenden, wenn linke Maustaste nicht mehr gedrückt
if (!Mouse.isPressed(MOUSE_LEFT)) {
MausClickLM = false;
Serial.println("Feuer gestoppt.");
}
}
delay(10); // CPU-Last reduzieren
}
tippe oder füge den Code hier ein
habe sehr viele verschiedene Varianten Probiert ohne Erfolg.
Ich freue mich auf eure Unterstützung.