Automatische Ausführung von Hotstrings basierend auf Dateiinhalt Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Nussbeisser
Posts: 118
Joined: 17 Jul 2019, 08:49

Automatische Ausführung von Hotstrings basierend auf Dateiinhalt

18 Mar 2024, 14:37

Hallo zusammen,

ich habe eine Liste von Hotstrings in einer Datei. Je nach dem Inhalt dieser Datei soll der entsprechende Hotstring ausgeführt werden. Ist so etwas möglich? Danke!

Code: Select all

;Inhalt von file.txt
;gkk


Fileread, hi, file.txt
Run, % hi ; Zum Beispiel


::gkk::
Msgbox, gkk
return

::gkg::
Msgbox, gkg
return

::gkh::
Msgbox, gkh
return

KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt

19 Mar 2024, 16:24

Hi,
Vielleicht lässt sich dies durch Anpassungen am SendLevel oder #InputLevel lösen, wie zum Beispiel:

Code: Select all

FileRead, hi, file.txt
SendLevel, 1
SendEvent % hi "{enter}"
gregster
Posts: 9035
Joined: 30 Sep 2013, 06:48

Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt  Topic is solved

19 Mar 2024, 16:35

Hotstrings sind auch (wie Hotkeys) anspringbare Labels. Zum Beispiel:

Code: Select all

hi := "gkg"  	; Inhalt der Variablen könnte natürlich auch aus einer Datei gelesen werden
gosub ::%hi%

::gkk::
Msgbox, gkk
return

::gkg::
Msgbox, gkg
return

::gkh::
Msgbox, gkh
return
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt

19 Mar 2024, 16:53

Hi @gregster, Danke dir!

Auch ich bin auf die Idee mit GoSub bzw. GoTo gekommen.
Als ich testen wollte, bekam ich einen Fehler, da ich bei den HotStrings die doppelten Doppelpunkte nicht berücksichtigt hatte.
Dein Vorschlag funktioniert zuverlässiger und ist viel sauberer als meine Idee.
gregster
Posts: 9035
Joined: 30 Sep 2013, 06:48

Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt

19 Mar 2024, 17:14

Gerne, KHA. Es gibt ja immer verschiedene Wege.
Wenn man allerdings Hotstring-Optionen verwendet (z. B. * oder ?), dann müsste man die beim gosub-Aufruf berücksichtigen: gosub :*:%hi%.

Man kann jedoch auch normale Labels verwenden, da man Labels ja "stapeln" kann (aka stacking):

Code: Select all

hi := "gkg"  	; Inhalt der Variablen könnte natürlich auch aus einer Datei gelesen werden
gosub %hi%

gkg:
:*:gkg::
Msgbox, gkg
return

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 63 guests