SSブログ

画像をクリップボードコピーする [JavaScript]

ddimg.png
画像をクリップボードコピーする.js (WSH版)

タイトル通りです。画像をアプリ起動なしで、いきなりクリップボードにコピーするものです。
画像ファイルをドラッグ&ドロップ するだけ。(よく使うならSendToに入れてもいいかも)

シングルクォートとダブルクォートが混じっていますが、PowerShellではダブルクォートはいろいろ変換されてしまます。

引用符規則について - PowerShell Microsoft Docs
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7.2

そこで PowerShell内でシングルクォートが使えるように、PowerShellのコマンド自体はダブルクォートで囲いました。パス・ファイル名の中のシングルクォートは、シングルクォート2個に置き換え逃げ切っています。

以下をコピーして「画像をクリップボードコピーする.js」というファイル名で保存します。
(長いので切れて見えなくなっててすみません。)
if( WScript.Arguments.Count() === 0 ) 
{ 
    WScript.createObject( 'WScript.Shell' ).Popup( 'Drag and drop the image file', 5, 'Copy Image File to Clipboard', 48);
    WScript.Quit( 1 );
} 
WScript.Quit( WScript.createObject( 'WScript.Shell' ).Run( "PowerShell -Command Add-Type -AssemblyName System.Windows.Forms;[Windows.Forms.Clipboard]::SetImage([System.Drawing.Image]::FromFile('" + WScript.Arguments.Item(0).replace("'", "''") + "'));", 0, true ) );

nice!(0)  コメント(0)