クリップボードのテキストデータをコピーする。(バージョン4.46以降)
clipb2var <strvar> [<offset>]
クリップボードのテキストデータを <strvar> へ代入する。
文字列変数の最大長の制限を受けるため、クリップボードのテキストデータが長すぎた場合は512バイト目以降が切り捨てられる。
<offset>を指定すると、offset*511+1文字目以降の内容が代入される。
<offset>に0以外を指定するためには、事前に<offset>無し、または<offset>に0を指定してclipb2varを実行する必要がある。
<offset>に0以外を指定した時に得られるクリップボードの内容は現在のものではなく、最後に<offset>無し、または<offset>に0を指定してclipb2varを実行した時点でのクリップボードの内容となる。
このコマンドの実行結果はシステム変数 result に格納される。変数 result の値の意味は以下のとおり。
値 | 意味 |
---|---|
0 | クリップボードを開けなかった。またはテキストデータではなかった。またはoffsetの値が適切ではなかった。 |
1 | <strvar> への代入に成功した。 |
2 | <strvar> への代入は行われたが、入りきらなかった部分は切り捨てられた。offsetの値を増やして再度clipb2varコマンドを実行する事で、切り捨てられた部分にアクセスできる。 |
3 | クリップボードの内容を記憶しておくためのメモリの確保に失敗した。この場合でも先頭から最大511バイトは変数に代入されるが、offsetを増やして再度clipb2varコマンドを実行しても切り捨てられた部分にはアクセスできない。 |
clipb2var data messagebox data 'clipboard data'
; 511バイトを超えるクリップボード文字列を読み込む ; +------------------------------------------------------------------+ ; | 1024 bytes clipboard text | ; +------------------------------------------------------------------+ ; +-------------------------+--------------------------+-------------+ ; | (1) 511 bytes | (2) 511 bytes | (3) 2 bytes | ; +-------------------------+--------------------------+-------------+ clipb2var data ; data に (1) が代入され、result に 2 が代入される messagebox data 'clipboard data 1' clipb2var data 1 ; data に (2) が代入され、result に 2 が代入される messagebox data 'clipboard data 2' clipb2var data 2 ; data に (3) が代入され、result に 1 が代入される messagebox data 'clipboard data 3' clipb2var data 3 ; data にはなにも代入されず、result に 0 が代入される messagebox data 'clipboard data 4'
; クリップボードの内容をファイル(clipboard.txt)に書き出す fileopen fp 'clipboard.txt' 0 if result <> 0 end offset = 0 do clipb2var buff offset if result > 0 filewrite fp buff offset = offset + 1 loop while result = 2 fileclose fp