2016-08-15 22 views
1

私はマシン上にローカルに保存されたテキストのhtmファイルを持っており、その内容をAutoHotKeyスクリプトを使ってクリップボードにコピーしたいと思います。HTMファイルの内容をクリップボードにコピー

FileRead, Clipboard, *c C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 

UrlDownloadToFile, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm, NewTextFile.txt 

をしかしそれらのどちらも働いていた:私は試してみました。 + と次Ctrlキー + C Ctrlキー

Run, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 

が、それは理想的ではないのです。私は考えることができ 唯一の回避策は、使用したブラウザでHTMファイルを開くことでした。

+1

'* c'オプションはなぜですか? 'FileRead、クリップボード、C:\ Users \%A_UserName%\ AppData \ Local \ Temp \ file.htm' うまくいくはずです。 – Bob

+0

@Bob ** Nope **。クリップボードはまだ空白です。私のマシンに何か間違っていますか?上記のコード行はあなたのマシンで動作するでしょうか?つまり、htmファイルの内容を 'Clipboard'に送りますか? – Bababarghi

+0

あなたのマシンに何か問題があるかどうかわかりません。私にとっては10 MB以上のファイルでも動作します。それがなぜ助けになるのか分かりませんが、 'FileRead'を他の変数に保存してみて、' clipboard:= var'を使ってみましたか? 'clipboard:= RegexReplace(var、" \ 0 "、" + ")'を使ってNULL文字を置き換えることもできます。知るか。 – Bob

答えて

0

パスが正しいことは間違いありませんか?これを行う場合:

FileRead, Clipboard, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 
MsgBox %ErrorLevel% 

MsgBoxとは何ですか? 1)ファイルが存在しない、2)ファイルがロックされている、アクセスできない、3)システムにファイルをロードするのに十分なメモリがない、などの問題が発生した場合は、1に設定されます"出典:https://autohotkey.com/docs/commands/FileRead.htm

どのバージョンのAutoHotkeyをインストールしましたか?非常に古いバージョンの場合は、Unicode(utf-8)ファイルを読むのが難しいかもしれません。 可能であれば最新のバージョンをダウンロードしてインストールしてください。https://autohotkey.com/download/

FileReadが機能するはずです。しかし、HTMLコードの内容をクリップボードに読み込みます。段落、太字、斜体、リスト、表などのようにHTMLファイルの書式付きテキストが必要な場合は、WinClip()ライブラリを使用して別の手法が必要です。

  1. ダウンロードしてここにhttps://autohotkey.com/board/topic/74670-class-winclip-direct-clipboard-manipulations/
  2. からWinClip()ライブラリを解凍(例えばオフィスにこれをで行う、これはHTMLファイルを読み込み、メモリにフォーマットされたテキストを読んで、それを貼り付けます、新しいスクリプトを作成しますか、フォーマットされた入力を受け入れる他のプログラム):

    #Include WinClipAPI.ahk 
    #Include WinClip.ahk 
    wc := new WinClip 
    
    WinClip.Clear() 
    
    FileRead, html, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 
    WinClip.SetHTML(html) 
    WinClip.Paste() 
    

出典:How to send formatted/rich data (formatted text, links, images, etc) - #4

注:自分のLintalistプログラムで同じテクニックを使用します。

+0

ありがとう@lintalist。残念ながら、私はこのコードを必要としていた私はもはやオフィスで働いていないので、今このスレッドは死んでいます。したがって私はあなたの提案をテストする意味がありません。しかし、もう一度、本当にあなたの時間と労力を感謝します。 – Bababarghi

関連する問題