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
Absoluter Einfüge-Modus
Moderator: jNizM
-
- Posts: 135
- Joined: 28 Jan 2021, 17:09
- Location: Germany
Re: Absoluter Einfüge-Modus
Moin,
GetKeyState()
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.
GetKeyState()
Wie ich das lese, hast Du keine Chance, den Einfügemodus über eine Tastaturabfrage zu erkennen.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.
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.
-
- Posts: 135
- Joined: 28 Jan 2021, 17:09
- Location: Germany
Re: Absoluter Einfüge-Modus
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
unverantwortlich viel Kalorien verbrauchen würde.
Ich weiß, bin wiedermal zu exotisch unterwegs
Stroker-007
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
Ich weiß, bin wiedermal zu exotisch unterwegs
Stroker-007
Re: Absoluter Einfüge-Modus
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:
Vielleicht findest Du ja doch noch was,
just me
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:
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.... ist der Schaltstatus beim Start des Skripts grundsätzlich immer 0 und wird nicht zwischen Prozessen synchronisiert.
Vielleicht findest Du ja doch noch was,
just me
Who is online
Users browsing this forum: just me and 38 guests