clipb2var

クリップボードのテキストデータをコピーする。(バージョン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