2017-05-15 27 views
1

Ich versuche AutoHotKey zu verwenden, um einige meiner Arbeit zu automatisieren. Wenn ich Kunden entspreche, habe ich eine Vorlage, die ich verwende. Ich habe die Vorlage erstellt und in die Zwischenablage kopiert und mit einem AutoHotKey-Skript in einer Datei gespeichert - dieser Teil funktionierte einwandfrei. Ich möchte jetzt speichern, was auch immer in der Zwischenablage ist, laden Sie die zuvor gespeicherte Datei, fügen Sie sie in mein Outlook-Nachrichtenfenster und stellen Sie die gespeicherte Zwischenablage wieder in die Zwischenablage. Ich habe diese verschiedenen Möglichkeiten ohne Erfolg ausprobiert - normalerweise wird in Outlook kopiert, was ursprünglich in der Zwischenablage war. Hier sind die Skripte ich versucht habe:AutoHotKey Datei in Zwischenablage kopieren und einfügen

^F5:: 
    ClipSaved := ClipboardAll ; Save the entire clipboard to ClipSaved (Not just text) 
    Clipboard =   ; Clear the clipboard 
    FileRead, Clipboard, *c <fullpath to saved file like c:\dir\file.clip> 
    MyErr = %ErrorLevel% 
    if MyErr >= 1 
    { 
     MsgBox, Unable to read case_format.clip! 
    } 
    ClipWait, 5 
    SendInput, ^v 
    Clipboard := ClipSaved  ; Restore the clipboard we saved 
    ClipSaved =     ; Free the memory in case the clipboard was very large 
Return 

ich auch versucht habe, den WinClipApi mit und es wird nicht funktionieren. Er kopiert nichts und ich am Ende mit einem Piepton aus den Fenstern:

^F5:: 
    WinClip.Snap(ClipSaved) 
    WinClip.Clear() 
    WinClip.Load(<full path to file like "c:\dir\file.clip">) 
    ClipWait,5, 
    WinClip.Paste() 
    WinClip.Restore(ClipSaved) 
Return 

Ich habe versucht, das Mischen und Stücke passend (wie die Fileread AHK-Befehl im WinClip Beispiel ‚Send,^v‘ zum Ersetzen WinClip.Paste() und so weiter) aber nichts scheint zu funktionieren. Irgendwelche Vorschläge?

+0

Sie wollen 'Zwischenablage: = ClipSaved', nicht 'Zwischenablage = ClipSaved' –

Antwort

0

Sie könnten die Zwischenablage vor Fenster werden zerstört wird ctrl + v getan Verarbeitung

Diese für Fenster wartet Einfügen zu beenden, bevor die Zwischenablage

SendInput, ^v 
Sleep 2000     ; Wait 2s for Windows to finish with clipboard 
Clipboard := ClipSaved 

Die Länge der Verzögerung zu modifizieren, hängt auf was du anbringst. 100MB Bild einfügen wird

eine längere Verzögerung als ein paar Zeilen Text erfordert Wenn die Zwischenablage etwas anderes als Text enthält, sollten clipwait zweite Parameter verwendet:

ClipWait, 2, 1 
Verwandte Themen