指定したクリップボード形式のデータをクリップボードから取得します。
#Include <Clipboard.au3>
_ClipBoard_GetDataEx([$iFormat = 1])
パラメータ
$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_GetData関数が返したハンドルを制御します。データをすぐにコピーしてください。アプリケーションはハンドルを解放したり、ロックした状態で手放してはいけません。またアプリケーションは_ClipBoard_Empty関数、_ClipBoard_Close関数が呼ばれた後、または同じクリップボード形式でこの関数が呼ばれた後でハンドルを使用してはなりません。
関連
_ClipBoard_SetData, _ClipBoard_GetData
こちらも参照
MSDNライブラリのGetClipboardDataを検索して下さい。
例
#include <GuiConstantsEx.au3>
#include <ClipBoard.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $btn_SetData, $btn_GetData, $hMemory, $tData
; 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
; クリップボードを開く
If Not _ClipBoard_Open ($hGUI) Then _WinAPI_ShowError ("_ClipBoard_Open failed")
; Read clipboard text
$hMemory = _ClipBoard_GetDataEx ($CF_TEXT)
If $hMemory = 0 Then _WinAPI_ShowError ("_ClipBoard_GetDataEx failed")
; クリップボードを閉じる
_ClipBoard_Close ()
$tData = DllStructCreate("char Text[8192]", $hMemory)
MemoWrite(DllStructGetData($tData, "Text"))
EndSwitch
WEnd
EndFunc ;==>_Main
; メモにメッセージを書き込む
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite