Einige Fragen zur erweiterten Verwendung von Autohotkey

Einige Fragen zur erweiterten Verwendung von Autohotkey

Ich verwendedieses wunderbare Stück Softwareschon seit einiger Zeit, aber nur für ein paar grundlegende Dinge. Daher frage ich mich, ob Folgendes möglich wäre:

  • verschiedene Tastenkombinationen für unterschiedliche Anwendungen zu verwenden – so führt eine Tastenkombination an unterschiedlichen Stellen unterschiedliche Aktionen aus.

  • um eine Art Modi für die Anwendung zu erstellen, bei denen man einen Schalter (im Vim-Stil) verwenden könnte, und dies würde die Dinge ändern, die Shortcat tun würde

  • wenn es möglich wäre, eine Überschrift zu platzieren, die angibt, welchen Modus Sie verwenden - kleine Verbesserung gegenüber dem vorherigen Punkt

Ich danke allen für ihre Antworten.

Antwort1

Punkt 1 scheint gelöst. Zu Punkt 2 und 3 können Sie wie folgt vorgehen. Mein Code ist vielleicht nicht sehr effizient, aber er funktioniert:

#Persistent                   ;--This needs to come before any
SetTimer, IsActiveTimer, 20   ;--return in the script.

IsActiveTimer:  ;--Below comes what the timer does
if StateIsActive = 1
{
  MouseGetPos, Px, Py   ;--The below creates tooltip when active
  ToolTip, "State is: Active", Px+40, Py+50, 5
}
else
{
ToolTip,,,, 5  ;--Removes tooltip when not active
   }
return

!^#z::   ;--This is the hotkey that toggles the state
         ;--between active and not active.
If StateIsActive = 1
{
StateIsActive := 0
}
else
{
StateIsActive := 1
}
return

!^#a::  ;--Hotkey that types either Zerg or Borg
        ;--depending on active/not active, so that you
        ;--may automatically choose the right party in
        ;--your documents in any potential war
If StateIsActive = 1
{
Sendinput, Zerg
}
Else
{
Sendinput, Borg
}
return

Antwort2

Ja.

Informationen zu unterschiedlichen Regeln für unterschiedliche Anwendungen finden Sie unter#wennSieAktivieren.

Zum Beispiel:

; Make Ctrl+PageUp and Ctrl+PageDown work in Safari
#ifWinActive ahk_class {1C03B488-D53B-4a81-97F8-754559640193}
^PgUp::Send ^+[
#ifWinActive ahk_class {1C03B488-D53B-4a81-97F8-754559640193}
^PgDn::Send ^+]

#ifWinNotActive ahk_class PuTTY
+Ins::Send ^v
#ifWinNotActive ahk_class PuTTY
+Del::Send ^x
#ifWinNotActive ahk_class PuTTY
^Ins::Send ^c

Klicken Sie mit der rechten Maustaste auf das AutoHotkey-Symbol und dann mit der rechten Maustaste auf Window Spy, um den Wert der ahk_class herauszufinden.

Modi wie in Vi scheinen auch möglich zu sein. Schauen Sie sich anKommandoZum Beispiel.

Antwort3

um eine Art Modi für die Anwendung zu erstellen, bei denen man einen Schalter (im Vim-Stil) verwenden könnte, und dies würde die Dinge ändern, die Shortcat tun würde

Sie können die #If-Anweisung verwenden, die in der aktuellen Distribution von AutoHotkey_L verfügbar ist (die Sie von der Site herunterladen müssen). Sie können etwa Folgendes schreiben:

#If Winactive("window_name") and (Mode = Mode1)

F1::MsgBox, Mode1
::mode::Mode1

#If Winactive("window_name") and (Mode = Mode2)

F1::MsgBox, Mode2
::mode::Mode2

Sie können am Ende ein einfaches #If einfügen, um alle Bedingungen abzuschließen.

Was meinst du mit „Beschriftung“? Du kannst ein kleines, symbolleistenähnliches Fenster mit dem Namen des Modus oder einem Bild erstellen und es aktualisieren, wenn du den Modus änderst oder mithilfe eines Timers, der den aktuellen Modus verfolgt.

verwandte Informationen