ClipboardAll

クリップボード上のすべてのもの(画像や書式など)を含むオブジェクトを作成します。

ClipSaved := ClipboardAll(Data, Size)

ClipboardAll自体は、Bufferから派生したクラスです。

パラメータ

両方のパラメータを省略すると、クリップボードの現在の内容を取得することができます。それ以外の場合は、1つまたは両方のパラメータを指定して、与えられたバイナリクリップボードデータを含むオブジェクトを作成します。

Data

型:オブジェクトまたは整数

Bufferのようなオブジェクト、またはバイナリデータのアドレスである純粋な整数。データは特定のフォーマットでなければならないので、一般的には、以前にClipboardAllを呼び出したときに発生したものです。以下の例2参照。

Size

型:整数

使用するデータのバイト数を指定します。Dataがオブジェクトの場合は省略可能です。

戻り値

型:Object

この関数は、2つのプロパティ(Bufferから継承)を持つClipboardAllオブジェクトを返す。

備考

組込変数A_Clipboardは、プレーンテキストとして表現されたWindowsクリップボードの現在の内容を反映しますが、ClipboardAllオブジェクトを割り当てて、その内容をクリップボードに復元することができます。

ClipboardAllは、クリップボードの内容を保存して、スクリプトが一時的にクリップボードを操作に使用できるようにするために最もよく使われます。操作が完了すると、スクリプトは例1および例2に示すように、元のクリップボードの内容を復元します。

ClipboardAllがクリップボード上の1つ以上のデータオブジェクト(フォーマット)を取得できない場合、それらは省略されますが、残りのオブジェクトはすべて保存されます。

ClipWaitは、クリップボードにデータ(オプションで非テキストデータも含む)が含まれていることを検出するために使用することができる。

オブジェクトが含むバイナリデータは、4バイトのフォーマットタイプ、4バイトのデータブロックサイズ、そのフォーマットのデータブロックの順で構成されます。クリップボードに複数のフォーマットが含まれている場合(ほとんどの場合)、すべてのフォーマットが含まれるまで、これら3つの項目が繰り返されます。データは、4バイトのフォーマットタイプ「0」で終了します。

A_Clipboard, ClipWait, OnClipboardChange, #ClipboardTimeout, Buffer

変数を使ってクリップボードのすべてを保存・復元します。

ClipSaved := ClipboardAll()   ; クリップボード全体を任意の変数に保存します。
; ... ここで、大量のテキストを素早く貼り付けるなど、クリップボードを一時的に使用する ...
A_Clipboard := ClipSaved   ; 元のクリップボードを復元します。ClipboardAllではなく、A_Clipboardを使用していることに注意してください。
ClipSaved := ""  ; クリップボードが非常に大きい場合に備えて、メモリを解放しています。

クリップボードにあるすべてのものを、ファイルを使って保存・復元します。

; オプション1:既存のファイルを削除し、FileAppendを使用します。
FileDelete "Company Logo.clip"
FileAppend ClipboardAll(), "Company Logo.clip" ; ファイル拡張子は問いません。

; オプション2:FileOpenを上書きモードで使用し、File.RawWriteを使用します。
ClipData := ClipboardAll()
FileOpen("Company Logo.clip", "w").RawWrite(ClipData)

後でファイルをクリップボードに(または変数に)読み戻すには、次の例に従います。

ClipData := FileRead("Company Logo.clip", "RAW")  ; この場合、FileReadはBufferを返します。
A_Clipboard := ClipboardAll(ClipData)  ; BufferをClipboardAllに変換してアサインします。