2017-05-15 77 views
1

私の仕事の一部を自動化するためにAutoHotKeyを使用しようとしています。顧客に対応すると、私は使用するテンプレートを持っています。私はテンプレートを作成し、それをクリップボードにコピーし、AutoHotKeyスクリプトを使用してファイルに保存しました。この部分はうまくいきました。クリップボードに保存されているものを保存し、あらかじめ保存されているファイルをロードしてOutlookのメッセージウィンドウに貼り付け、保存したクリップボードをクリップボードに復元します。私は成功しなかったこのいくつかの方法を試しました - 通常、Outlookにコピーされるものは、元々クリップボードにあるものです。ここで私がしようとしてきたスクリプトです:AutoHotKeyファイルをクリップボードにコピーして貼り付けます

^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 

私もWinClipApiを使用してみましたが、それはどちらか動作しません。それをコピーし、何もないと私は窓からの「ビープ音」で終わる:は「SendInput、^ V」に置き換えて、私は混合およびWinClip例でFileRead関数AHKコマンドを使用してのように(作品を照合しようとした

^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 

WinClip.Paste()など)、何も動作していないようです。助言がありますか?あなたは窓の前にクリップボードを破壊される可能性があります

+0

あなたは 'クリップボードたい:= ClipSaved'を、ありません'Clipboard = ClipSaved' –

答えて

0

は窓が

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

クリップボードを変更する前に、貼り付けを完了するためにこれは、遅延の長さが異なり待つCtrl + V

を処理して行われますあなたがペーストしているものについて100メガバイトの画像を貼り付けると、クリップボードにテキスト以外のものが含まれている場合は、clipwaitの二番目のパラメータを使用することを検討してテキスト

の数行より長い遅延が必要になります:

ClipWait, 2, 1 
関連する問題