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