Autohotkey vollständige Zuordnung der Pfeile

0

Ich habe diesen Code bisher mit Autohotkey (.ahk)

!k::SendInput,{UP}
!j::SendInput,{LEFT}
!æ::SendInput,{RIGHT}
!l::SendInput,{DOWN} 

das ordnet meine Pfeiltasten richtig j, k, l, æ zu. (æ ist die; Taste auf englischen Tastaturen)

Dies funktioniert wie ein Zauber, abgesehen von der Tatsache, dass ich "Strg + Alt + J" nicht halten kann, um zum nächsten Wort links zu gehen, wie ich es tue, wenn ich "Strg + PfeiltasteLinks" benutze.

Ich brauche dies auch, um mit Shift zu arbeiten und die Buchstaben links hervorzuheben. Was jetzt passiert, ist einfach nichts. Ich schätze, ich sollte dem Skript sagen, dass es Text auf "Umschalt + Alt + (j, k, l, æ)" markieren soll, aber ich habe keinen Weg dazu gefunden mach das erst jetzt. Hilfe, Likes oder Vorschläge dazu sind sehr willkommen. Danke im Voraus.

Peterrr
quelle
Ich bin mir nicht sicher, ob ich eine einfache Antwort geben kann, außer die Zeilen mit Strg und Umschalt zu duplizieren. Normalerweise ist das, was Sie beschreiben, unerwünscht - die meisten Leute möchten, dass Strg + Umschalt + Q etwas anderes als Strg + (Umschalt + Q) oder Umschalt + (Strg + Q) tut.
NextInLine
@NextInLine also so etwas wie: ^! J :: SendInput, {STRG + LINKS} Ich vermute?
Peterrr
Sowas in der Art. Ich kann momentan nicht auf die Website von AutoHotKey zugreifen, um deren Dokumente zu überprüfen.
NextInLine

Antworten:

0

In Anlehnung an die Überlegungen in @ NextInLines Kommentar könnte etwas wie das Folgende ein Ausgangspunkt sein, aber es scheint, dass mit Windows und diesen Tastenkombinationen etwas Komisches los ist pro Wort. Möglicherweise führt das Testen auf Ihrem System zu einem anderen Verhalten.

Grundsätzlich funktioniert das Skript wie folgt:

  1. Überprüfen Sie, ob der Tastenzustand von Strg und Alt True ist (gedrückt).
  2. Wenn dies zutrifft, wiederholen Sie den enthaltenen Code 20 Mal
  3. Warten Sie in Loop, bis j 2 Sekunden lang gedrückt wird. Wenn gedrückt, führen Sie {Alt up} {Strg down} {Shift down} {LEFT} aus.
  4. Schleife unterbrechen, wenn keine Taste j erkannt wird.

Der Code:

 ^!j::
 {
      if (GetKeyState("Ctrl", "P")) AND (GetKeyState("Alt", "P"))
        { 
        Loop, 20
        {
        KeyWait, j, D T2
        if (GetKeyState("j", "P"))
          {
          SendInput, {Alt up}{Ctrl down}{Shift down}{LEFT}
          }
        else
        {
          break
        }
        }
      SendInput, {Ctrl up}{Shift up}
      return
        }
    }
David Metcalfe
quelle