3 Stimmen

Wie kann ich Tastendrucke auf niedriger Ebene abfangen und korrigieren?

Ich schreibe ständig "t eh" statt "the", was natürlich ärgerlich ist, weil ich so viel Zeit brauche, um mich zu korrigieren.

Die offensichtliche Antwort lautet: "Lerne tippen, Noob!" oder zumindest langsamer und/oder korrekter zu tippen. Dieser Fehler tritt erschreckend häufig auf, so dass es scheint, als hätte ich mein Muskelgedächtnis für dieses Muster bereits trainiert.

Aber Ich frage mich, ob es möglich ist, ein kleines, auf Windows portierbares Skript oder eine Anwendung zu schreiben, die, wenn sie die falsche Sequenz erkennt, die Leerzeichen zurücksetzt und sie automatisch auf einer Ebene korrigiert, auf der sie für jede Tastatureingabe gelten würde.

  • Hat C# Zugriff auf die Schicht des Betriebssystems, die Tastendrucke systemweit abfängt?
  • Werde ich unter Vista Probleme mit der UAC bekommen?
  • Muss ich das Rad neu erfinden (d. h. gibt es Open-Source-Tools, die ich modifizieren oder direkt verwenden kann)?

Unter DOS war dies recht einfach, und man konnte TSR-Programme (Terminate and Stay Resident) erstellen, die z. B. auf Tastendruck einen Taschenrechner auf dem Bildschirm erscheinen ließen. Ganz zu schweigen von den vielen, vielen praktischen Scherzprogrammen, die auf diesem Konzept basierten (wähle "M" für Monster!)...

Das würde ich natürlich tun, niemals vorschlagen, dass ein solches Dienstprogramm auf diese Weise für Mitarbeiter verwendet werden könnte...

-Adam

4voto

Rob Haupt Punkte 2064

Unter Windows können Sie AutoHotKey verwenden. Damit können Sie kleine Skripte oder Makros erstellen, um Dinge wie Tippfehler zu automatisieren und zu korrigieren.

Eine Anwendung wurde auf Lifehacker gepostet, die die am häufigsten falsch geschriebenen Wörter korrigiert hat. Sie ist unter http://lifehacker.com/192506/download-of-the-day-universal-autocorrect


UPDATE Per Kommentar: Soweit ich weiß, handelt es sich um freie Software und nur für Windows.

Das obige Skript ist nur ein Beispiel dafür, was es leisten kann. Es gibt eine ganze Reihe von Skripten unter AutoHotkeys Website

2voto

TorgoGuy Punkte 1316

Ich schlage AutoHotKey vor. Wenn Sie es noch nie benutzt haben, lesen Sie kurz das Tutorial: http://www.autohotkey.com/docs/Tutorial.htm

Die Funktion, nach der Sie suchen, heißt "Hotstrings". http://www.autohotkey.com/docs/Hotstrings.htm

In Ihrem Fall würde Ihr Skript etwa so aussehen:

::teh::the

Das war's! Fügen Sie weitere Dinge, die Sie korrigieren möchten, in zusätzlichen Zeilen hinzu. AutoHotkey-Skripte können kompiliert werden, so dass Sie AutoHotKey nicht auf allen Ihren Rechnern installieren müssen.

Es ist ein sehr cooles Programm. Seine primäre Verwendung (für die Erstellung von benutzerdefinierten Hotkeys) rockt! Diese Skripte sind systemweit, so dass Sie wahrscheinlich auch wollen, um einen Hotkey zu machen, um sie auszuschalten zu können!

EDIT: In einem Kommentar wurde erwähnt, dass er tatsächlich "t eh" (mit einem Leerzeichen) tippt, und ich habe mich gefragt, ob etwas Zusätzliches nötig wäre, damit es funktioniert. Ich habe es gerade getestet und es funktioniert einwandfrei. Installieren Sie einfach Autohotkey, und erstellen Sie eine Datei mit der Erweiterung .AHK. In diese Datei fügen Sie die folgende Zeile ein

::t eh::the

und speichern Sie die Datei. Dann doppelklicken Sie auf die AHK-Datei, um AutoHotKey mit Ihrem Skript zu laden (Sie werden ein grünes Quadrat in der Taskleiste sehen, das Sie darüber informiert, dass es läuft). Es sollte gut funktionieren!

0voto

Jason Irwin Punkte 1995

Ja, Sie können pinvoke-Befehle von C# aus verwenden, um die Low-Level-Befehle des Betriebssystems abzufangen. Ich empfehle Ihnen einen Blick auf http://www.pinvoke.net . Die Kodierung ist nicht einfach, aber sie funktioniert.

0voto

Karl Punkte 8437

Ich schlage vor, dass Sie lernen, langsamer zu tippen. Ich leide auch unter "teh" und "ahve", was zum Teil auf die Autokorrektur zurückzuführen ist, die mir diese Nachsicht gewährt. Wenn Sie sich zwingen würden, umzulernen, wären Sie nicht im Nachteil, wenn Sie die Maschine eines anderen benutzen.

Ganz zu schweigen von dem unglücklichen Fall, dass Sie "t eh" schreiben müssen und von einem übereifrigen "Korrektor" daran gehindert werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X