ich mal wieder einen kleinen Hänger und hoffe es kann mir einer helfen.
Hintergrund:
Ich möchte eine kleines Tool für Textbausteine erstellen. Die User, welche es später anwenden, haben AHK nicht installiert und erhalten daher nur die compilierte .exe, sollen jedoch die Textbausteine selbst verwalten.
Idee:
Das Skript holt sich seine Variablen bei jedem Start aus einer .txt und baut dann dynamisch ein Menu auf, welches über einen Hotstring "++" aufgerufen werden kann. Es gibt zwei hart gecodete Hauptordner "WS" und "QS", die Submenu darunter und die "ausführenden Einträge" können über die .txt gesteuert werden.
Grundsätzlich funktioniert es ja schon mal, jedoch soll der erste und der zweite Eintrag im gleichen Submenu landen. Wenn ich in der zweiten Spalte jedoch gleiche Namen verwende, dann zeigt er ihn richtigerweise nur einmal an, aber der erste Eintrag in Spalte 3 wird überschrieben bzw. taucht im Menu nicht auf.
Wo hab ich denn da den Denkfehler?
Hier meine Textbausteine.txt:
Code: Select all
WS Ordner1 hallo1 der erste
WS Ordner1 hallo2 der zweite
QS Ordner2 hallo3 der dritte
QS Ordner3 hallo4 der vierte
Code: Select all
Loop, read, Ordner/Textbausteine.txt,
{
Loop, parse, A_LoopReadLine, %A_Tab%
If (A_LoopField = "")
break
else
Einzelmerkmale := StrSplit(A_LoopReadLine, A_Tab)
ebene1_%A_Index% := Einzelmerkmale[2]
Ebene1 := % ebene1_%A_Index%
ebene2_%A_Index% := Einzelmerkmale[3]
Ebene2 := % ebene2_%A_Index%
ebene3_%A_Index% := Einzelmerkmale[4]
if(Einzelmerkmale[1]="WS")
{
Menu, WS%Ebene2%, add, %A_Index%.%Ebene2%, Senden_Dummy%A_Index%
Menu, WSEbene1, add, %Ebene1%, :WS%Ebene2%
}
if(Einzelmerkmale[1]="QS")
{
Menu, QS%Ebene2%, add, %Ebene2%, Senden_Dummy%A_Index%
Menu, QSEbene1, add, %Ebene1%, :QS%Ebene2%
}
}
:*:++::
Menu, Start, add, WS, :WSEbene1
Menu, Start, add, QS, :QSEbene1
Menu, Start, show
Return
Senden_Dummy1:
Textbaustein := % ebene3_1
Gosub TxtSenden
Return
Senden_Dummy2:
Textbaustein := % ebene3_2
Gosub TxtSenden
Return
Senden_Dummy3:
Textbaustein := % ebene3_3
Gosub TxtSenden
Return
Senden_Dummy4:
Textbaustein := % ebene3_4
Gosub TxtSenden
Return
TxtSenden:
Sendinput %Textbaustein%
Return