5

編集者注:
この質問は特にファイル参照をクリップボードにコピーすることに関するものですが、その一般的なタイトルから、 テキストをコピー/取得する方法に関する回答が得られました。

メールにファイルを添付することが多いWindowsのEmacsユーザーとして、Windowsエクスプローラーが右クリック/コピーするのと同じように、ファイル(コンテンツではない)をクリップボードにコピーするユーティリティを探していました。

私はまさにこれを行うために小さなプログラムで System.Windows.Forms.Clipboard` を使用する SO でこれを見つけまし。しかし、それは C# にあるため、コンパイラにすぐにアクセスすることはできません。だから私はこれができるかどうか、そしてどのようにできるか疑問に思っています。

VBScripting でクリップボードにアクセスできないなどの参照をいくつか見ましが、msdn はVB のドキュメントを示しているため、質問のリスクがあります。

私はこれまで VBScript を作成したことがありませんが、質問する前に、「Hello world」を貼り付けたコピーを実行することから始めて、さまざまな組み合わせCreateObjectなどを試してみました。

更新: を呼び出す必要があるため、回答で提案されているようClipboard.SetFileDropListに使用できるとは思いません。このメソッドはありません。ClipboardData

訪問者向けの更新

私が最終的に使用した解決策は、それ自体をコンパイルするC#ことでした。私はすでにコンパイラを持っていることを知りませんでした。

訪問者向けの別の更新 https://stackoverflow.com/a/29963268/18573は、私が現在使用しているもので、非常に満足しています。

4

4 に答える 4

4

VBScript はクリップボードをサポートしていません。Internet Explorer など、vbscript をホストするほとんどのホストは、ホストを介してアクセスを提供します。したがって、IE または HTA で実行されている vbscript は、IE のクリップボード サポートを使用できます。スクリプティング ホストはクリップボードをサポートしていません。vbs ファイルを使用して、COM オートメーションを介して IE を起動し、ローカル ページに移動して (セキュリティ警告を回避するため)、IE のクリップボードを使用できます。

コード スニピットは次のとおりです (Outp. はテキスト ストリームです)。

    Set ie = CreateObject("InternetExplorer.Application") 
ie.Visible = 0
ie.Navigate2 "C:\Users\David Candy\Desktop\Filter.html"
Do 
    wscript.sleep 100
Loop until ie.document.readystate = "complete"  
txt=ie.document.parentwindow.clipboardData.GetData("TEXT")
ie.quit
If IsNull(txt) = true then 
    outp.writeline "No text on clipboard"
else
    outp.writeline txt
End If
于 2013-10-31T02:08:40.173 に答える