指定したクリップボード形式のデータをクリップボードに配置します。
#Include <Clipboard.au3>
_ClipBoard_SetData($vData[, $iFormat = 1])
パラメータ
$vData |
バイナリ形式または文字列形式のデータ。オプションとしてNULL (0)も使用できます(オーナーは必ずレンダリングするひつようがあります。下記を参照してください)。 重要 : 指定した型が$CF_TEXT、$CF_OEMTEXT、$CF_UNICODETEXTでない場合に文字列を渡すと値はANSI文字列として取り扱われます。 他の型でUnicode文字列を指定する場合はバイナリ形式のデータを渡す必要があります。また$CF_UNICODETEXTに対してはバイナリ形式のデータを渡さないでください(文字化けします)。 $vDataがNULLの場合、ウィンドウは要求に応じて指定されたクリップボード形式のデータを提供します。ウィンドウのレンダリングが遅延する場合、$WM_RENDERFORMATメッセージと$WM_RENDERALLFORMATSメッセージを処理しています。この関数が成功した場合、システムは$hMemoryパラメータで識別されるオブジェクトを所有するようになります。一度、所有権がシステムに委譲されるとアプリケーションはデータの書き込み、解放ができなくなります。ただし、_ClipBoard_Close関数が呼ばれるまではデータのロックと読み取りは可能です。クリップボードが閉じれる前にメモリーのロック解除をおこなう必要があります。$hMemoryパラメータでメモリーオブジェクトを識別している場合、$GMEM_MOVEABLEフラグと関数を使用してオブジェクトを割り当てる必要があります。 |
$iFormat | [オプション]クリップボード形式を指定します $CF_TEXT - テキスト形式 $CF_BITMAP - ビットマップのハンドル(HBITMAP) $CF_METAFILEPICT - メタファイル画像のハンドル(METAFILEPICT) $CF_SYLK - Microsoft Symbolic Link (SYLK) 形式 $CF_DIF - Software Arts' Data Interchange Format $CF_TIFF - タグイメージファイル形式 $CF_OEMTEXT - OEM文字セットの文字を含むテキスト形式 $CF_DIB - ビットマップビットが続くBITMAPINFO構造体 $CF_PALETTE - 色パレットのハンドル $CF_PENDATA - Pen Computingのペン拡張機能用データ $CF_RIFF - RIFF形式のオーディオデータを表します $CF_WAVE - WAVE形式のオーディオデータを表します $CF_UNICODETEXT - Unicodeテキスト形式 $CF_ENHMETAFILE - 拡張メタファイルのハンドル(HENHMETAFILE) $CF_HDROP - ファイルのリストを識別するHDROP型のハンドル $CF_LOCALE - クリップボード内のテキストに関連付けられたロケール識別子のハンドル $CF_DIBV5 - ビットマップカラーとビットマップビットが続くBITMAPV5HEADER構造体 $CF_OWNERDISPLAY - オーナー表示形式 $CF_DSPTEXT - プライベート形式に関連付けられたテキスト表示形式 $CF_DSPBITMAP - プライベート形式に関連付けられたビットマップ表示形式 $CF_DSPMETAFILEPICT - プライベート形式に関連付けられたメタファイル画像表示形式 $CF_DSPENHMETAFILE - プライベート形式に関連付けられた拡張メタファイル表示形式 |
返し値
成功: | データのハンドル |
失敗: | 0 |
注意
この関数はクリップボードにデータを置くために必要なステップの全てをおこないます。つまりグローバルなメモリーオブジェクトを割り当て、クリップボードを開き、データをクリップボード上に置きクリップボードを閉じます。クリップボード上へのデータ配置でより詳細な制御が必要な場合は、_ClipBoard_SetDataExを使うとよいでしょう。
関連
_ClipBoard_GetData, _ClipBoard_SetDataEx, _ClipBoard_Empty, _ClipBoard_GetDataEx
例
#include <GuiConstantsEx.au3>
#include <ClipBoard.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $btn_SetData, $btn_GetData
; GUI作成
$hGUI = GUICreate("Clipboard", 600, 450)
$iMemo = GUICtrlCreateEdit("", 2, 2, 596, 396, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn_SetData = GUICtrlCreateButton("Set ClipBoard Data", 150, 410, 120, 30)
$btn_GetData = GUICtrlCreateButton("Get ClipBoard Data", 300, 410, 120, 30)
GUISetState()
; ユーザーが終了させるまでループ
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $btn_SetData
_ClipBoard_SetData ("ClipBoard Library")
Case $btn_GetData
MemoWrite(_ClipBoard_GetData ())
EndSwitch
WEnd
EndFunc ;==>_Main
; メモにメッセージを書き込む
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite