autohotkey TextMenu

Noch was gelernt diese Woche

Nach dem tippen von xx, geht direkt das Menü auf, ohne ein auslösendes Zeichen verwenden zu müssen (* bedeutet, dass nicht erst ein auslösendes Zeichen gewarte wird.) Anschließend sorgt STRSplit dafür, dass nach dem ¦ gesucht wird. Das Zeichen ist so besonders, das ich das normalerweise nirgends verwende und es sich ideal als Trennzeichen anbietet. In der Funktion "Action" wird dann noch ein weiteres StrSplit angewendet, denn ich wollte gern so eine Art Nummerierung haben. Aktuell muss der Prefix dann immer 10 Zeichen umfassen, das ist etwas lästig,m aber das werde ich die Tage dann mal noch erweitern. Ich tut mich aktuell noch sehr schwer mit RegEx.

SingleInstance,Force ; sorgt dafür, dass nur eine Instanz des Skriptes laufen kann

:*:xx::
TextMenu("1-adidas-- 4055012256071¦2-superdry 4049854925516¦3-superdry 2000002615736")
return

TextMenu(TextOptions){
for k, MenuItems in StrSplit(TextOptions,"¦") ; sucht nach dem komische Pipe Symbol
Menu, MyMenu,Add,% MenuItems,Action ; alle gefundenen Items werden dem Menü hizugefügt

Menu, MyMenu, Show ;GUI anzeigen und auf eine Aktion warten
Menu, MyMenu, DeleteAll ;Menü verwerfen und löschen
}

Action:
 ClipboardBackup:=ClipboardAll ;backup von der Zwischenablage machen
Clipboard:=SubStr(A_ThisMenuItem,12) ; Schaufel die gefunden String in die Zwischenablage, ab dem 10-ten Zeichen
Send, ^v ; Text aus der Zwischenablage einfügen
 sleep, 100 ;ein kurzes Schläfschen sorgt für besseres funktionieren
 Clipboard:=ClipboardBackup ; Zwischenablage wiederherstellen
return

ToDos

RegEx um nach dem ersten Leerzeichen den StrSplit anzusetzten. Das mit den 10 Zeichen als Prefix ist nicht optimal. ==== Links Video von Joe Glines the-automator.com zum Thema. https://www.youtube.com/watch?v=XyhhiEUK84Y&t=10s