Absoluter Einfüge-Modus

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Stroker-007
Posts: 135
Joined: 28 Jan 2021, 17:09
Location: Germany

Absoluter Einfüge-Modus

20 Sep 2023, 13:25

Hallo allerseits!

Wenn ich einen Hotstring mit einem Textbaustein bemühe, aber vergessen habe, den zuvor aus welchem Grund auch immer ausgeschalteten Einfügemodus wieder rückgänig zu machen, dann kann das je nach Standort des Cursors ganz schnell böse Folgen haben.

send {ins} dem Makro voranzustellen gleicht eher einer Lotterie und nützt somit wenig, weil die Taste INS ja nur eine banale Umschalte-Funktion ist/hat. Was es also bräuchte, ist eine Absolut-Funktion für den Einfügemodus (oder von mir aus auch für den Gegenpart), an dem man sich bei der sicheren Schaltung orientieren kann.

Vor 30 Jahren hatte ich im Macromodul meiner DOS-Textverarbeitung einen solchen Absolutmodus: ALT-i hat "Einf" IMMER auf EIN gesetzt.
Wie geht sowas heutzutage in AHK?

Grüße, Stroker-007
just me
Posts: 9531
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Absoluter Einfüge-Modus

21 Sep 2023, 03:26

Moin,

GetKeyState()
T: Ruft den Schaltstatus ab. Bei allen Tasten außer Feststell, Num und Rollen ist der Schaltstatus beim Start des Skripts grundsätzlich immer 0 und wird nicht zwischen Prozessen synchronisiert.
Wie ich das lese, hast Du keine Chance, den Einfügemodus über eine Tastaturabfrage zu erkennen.
Wenn es in einzelnen Anwendungen Tasten(kombinationen) gibt, die das Einfügen immer dauerhaft ein- oder ausschalten, wirst Du die wohl anwendungsabhängig mitsenden müssen.
Stroker-007
Posts: 135
Joined: 28 Jan 2021, 17:09
Location: Germany

Re: Absoluter Einfüge-Modus

22 Sep 2023, 07:43

Hallo just me,

mit diesen Verweisen hast Du leider volkommen Recht. Und GetKeyState() liefert auch nichts zur Unterscheidung. Ich wollte ja aber gar nichts abfragen oder ermitteln, sondern andersrum: Mit Hilfe des AHK-Fundus wie auch immer eine -absolute- Anweisung erteilen: Einf EIN, direkt und immer, ohne Umschalterei.

Daß das vom System her machbar ist, zeigt ja die Tatsache, daß nach Beendigung einer Anwendung, in der das umgeschaltet wurde, grundsätzlich immer wieder "zurück" auf EIN gesetzt wird. Oder so: Einf EIN ist der generelle Modus (der MAC kennt schon mal gar nix anderes), lediglich erlaubt Windows einigen Editier-Tools das auch auszuschalten, was nach Ende des Prog automatisch annuliert wird.

Aber auch alle aktuellen bekannten Editoren kennen meines Wissens nach nur den Umschalte-Modus. Diesen absoluten Schaltbefehl für Einf EIN hatte offensichtlich nur F&A 4.0, eine damalige integrierte Umgebung mit Textverarbeitung und Datenbank, ähnlich dbase, nur komfortabler, perfekt für Geschäfts-Umgebungen, noch heute bei mir im Einsatz.

Will heißen, daß dieses Thema von den AHK-Göttern als so nebensächlich eingestuft wird, daß die Implementierung beispielsweise eines

Code: Select all

SetKeyState, Ins, ON
unverantwortlich viel Kalorien verbrauchen würde.

Ich weiß, bin wiedermal zu exotisch unterwegs ;)
Stroker-007
just me
Posts: 9531
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Absoluter Einfüge-Modus

22 Sep 2023, 08:43

Moin,

mir stellt sich die Frage wie Du erkennst, ob der Einfügemodus bereits eingeschaltet ist? Nochmaliges Senden von Einfg würde ihn ja dann ausschalten.

SetKeyState, Ins, ON würde nichts bringen, weil der vielleicht vorhandene Toggle-Status nur für das AHK-Skript gelten würde:
... ist der Schaltstatus beim Start des Skripts grundsätzlich immer 0 und wird nicht zwischen Prozessen synchronisiert.
Wie eine Anwendung auf eine Taste wie Einfg reagiert, ist unter Windows allein deren Sache. Und wenn eine Anwendung immer einfügen will, kann sie die Taste enfach ignorieren.

Vielleicht findest Du ja doch noch was,
just me

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: just me and 38 guests