Page 1 of 1
Automatische Ausführung von Hotstrings basierend auf Dateiinhalt
Posted: 18 Mar 2024, 14:37
by Nussbeisser
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
Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt
Posted: 19 Mar 2024, 16:24
by KHA
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}"
Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt Topic is solved
Posted: 19 Mar 2024, 16:35
by gregster
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
Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt
Posted: 19 Mar 2024, 16:53
by KHA
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.
Re: Automatische Ausführung von Hotstrings basierend auf Dateiinhalt
Posted: 19 Mar 2024, 17:14
by gregster
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