Frage

Bei einer so grundlegenden Frage bin ich überrascht, dass ich bei der Suche nichts finden konnte ...

Wie auch immer, ich habe in Python eine Flüche-App erstellt, die beim Lösen von Rätseln eines bestimmten DSiWare-Spiels hilft.Damit können Sie ein Puzzle nehmen und die einzelnen Bestandteile einzeln untersuchen.Die Schlüssel qweasdzx werden zum Bemalen von Fliesen verwendet (die Tasten sind in einer Art Palette angeordnet).Durch Drücken einer dieser Tasten bei gedrückter Umschalttaste werden Kacheln mit dieser Farbe hervorgehoben.Ich könnte mir kein natürlicheres Kontrollschema wünschen.

Daher ist es eine Schande, dass Shift mir wieder einmal Probleme bereitet (das letzte Mal, als ich Probleme mit Shift hatte, habe ich mir ein Tumbleweed-Abzeichen verdient).Allerdings ist das Problem dieses Mal mehr oder weniger die Feststelltaste, die mein Programm völlig durcheinander bringt, indem sie die Funktionen umkehrt.

Wie kann ich den Status der Feststelltaste in Python mit Flüchen erkennen?

BEARBEITEN:Wenn Sie die Verwendung eines separaten Moduls vorschlagen, sollte ich Sie wahrscheinlich daran erinnern, dass sich Curses – und damit mein Programm – im UNIX-Territorium befindet.

War es hilfreich?

Lösung

Ich habe alleine eine Lösung gefunden:

Da die CAPS-Verriegelungseinstellung gemäß τζωτζιου vollständig nicht bewusst ist, versuchte ich eine alternative Lösung. Insbesondere sah ich auf, wie man Caps Lock in einem Bash-Skript überprüft. Was ich gefunden habe, war das:

linux nur. Benötigt X-Fenstersystem.

generasacodicetagpre.

Die letzten 0 in diesem Ausgang (das 66. Zeichen in der Zeichenfolge) ist das Caps-Lock-Flag. 1 Wenn es eingeschaltet ist, 0, wenn es ausgeschaltet ist.

Python kann UNIX-Systembefehle mit dem Linux-Only-nur Befehle Modul. Befehle scheinen keine Flüche zu stören.

generasacodicetagpre.

Das funktioniert gut für mich; Dies ist ein Skript mit persönlicher Nutzung, und es ist nicht so, dass mein Programm nicht bereits Linux-Exclusive war. Aber ich hoffe, jemand hat eine andere, mehr Windows-kompatible Lösung.

Ich werde diese Selbstantwort für jetzt annehmen, aber wenn jemand anderes eine bessere Arbeitslösung eingehen kann, würde ich es gerne sehen.

Andere Tipps

Die kurze Antwort:Du kannst nicht.

Eine längere Antwort:

curses wurde als terminfo-basierte Bibliothek erstellt, um die Erstellung zeichenbasierter Benutzeroberflächen unabhängig vom verwendeten Terminal zu erleichtern (for terminal in 'vt220', 'wyse100', …).

Diese Terminals waren über eine serielle Leitung verbunden und die Kommunikation zwischen dem Host und dem Host erfolgte entweder über Klartext (Eingabe durch den Benutzer oder Ausgabe durch den Host) oder spezielle Sequenzen („Escape“-Sequenzen;Eingabe durch den Benutzer, wenn Sondertasten gedrückt wurden, z oder Vorher, oder vom Host ausgegeben, wenn spezielle Vorgänge wie die Cursorpositionierung oder das Löschen des Bildschirms angefordert wurden).

Ich habe keine Kenntnis davon beliebig Ein dummes Terminal sendet eine spezielle Sequenz, wenn die Feststelltaste gedrückt wird, oder der Host fragt nach dem Status der Feststelltaste.Das Sperren von Großbuchstaben war Teil der Aufgabe des Terminals, und der Gastgeber brauchte keinerlei Kenntnisse.Dies ähnelt dem Grund, warum ein Curse-Programm nicht agieren kann, wenn die Strg-Taste alleine gedrückt wird.

Alles, was mit Flüchen zu tun hat, bezieht sich auf terminfo Fähigkeiten;Es gibt keine entsprechende Funktion für das, was Sie fragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top