ich arbeite mit einem Tool, das mir den Inhalt der Zwischenablage in Form einer History verwaltet. Damit kann ich auf die letzten Inhalte zugreifen, die ich in die Zwischenablage kopiert habe.
Nun möchte ich auf Tastendruck mehrere Wörter in die Zwischenablage kopieren, z.B. einen ganzen Satz. Anschließend soll die Zwischenablage Wort für Wort dieses Satzes in die Historie eintragen, damit ich dann auf einzelne Wörter zugreifen kann. Das bekomme ich auch mit folgendem Script hin:
Code: Select all
^#NumPadSub:: ; {Hotkey} Strg-Win-NUM-- → einzelne Wörter kopieren
; Die aktuelle Markierung wird in die Zwischenablage kopiert '
; und dort wird jedes einzelne Wort einzeln in der '
; Zwischenablage abgelegt. Anschließend kann man mit der '
; Clipboard-Historie die einzelnen Wörter pasten (Excel!) '
ToolTip, Bitte warten ...
SoundBeep, 850, 400
AutoTrim, on ; bei Variablen vorne/hinten Leerzeichen entfernen
clipboard = ; Clipboard löschen
SendInput ^c ; Markierung ins Clipboard ...
ClipWait, 2 ; warten (max. 2 Sekunden), bis Clipboard gefüllt ist
if ErrorLevel ; wenn nichts im Clipboard ...
{
ToolTip
Return ; ... beenden
}
MyClip := ""
MyClipboard = %clipboard%
StringSplit, MyClip, MyClipboard, %A_Space%`r`n ; splitte bei " " und CRLF
Loop, %MyClip0% ; enthält immer die Anzahl der Elemente
{
Wort := MyClip%a_index%
If Wort <>
{
clipboard = %Wort%
Sleep 275 ; muss sein !
}
}
ToolTip, Fertig!
SoundBeep, 2250, 300
Sleep 700
ToolTip
Return
Allerdings muss ich innerhalb des Loops immer eine Pause (bei meinem Rechner "Sleep 275") machen, damit die Zwischenablage das einzelne Wort verarbeiten kann. Den Grund dafür kenne ich leider nicht.
Frage: Gibt es eine schnellere Möglichkeit für mein Script? Ich habe mir mal die "variadischen Funktionsaufrufe" angeschaut, aber nicht ganz verstanden.
Danke schon mal im Voraus.
HG - Lucky Joe