掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
一度待避したクリップボードの内容を復元するには? (ID:18340)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
作ってみました。 細かいエラー対策はしていません。 procedure ClipBoardSaveToStream(Stream: TStream); procedure ClipBoardLoadFromStream(Stream: TStream); implementation procedure ClipBoardSaveToStream(Stream: TStream); var hMem: THandle;//LongWord uiFormatId: UINT; dwSize: DWORD; p: PCHAR; begin if OpenClipboard(0) then begin try uiFormatId := EnumClipboardFormats(0); while uiFormatId <> 0 do begin Stream.Write(uiFormatId, SizeOf(uiFormatId)); hMem := GetClipboardData(uiFormatId); if hMem <> 0 then begin dwSize := GlobalSize(hMem); Stream.Write(dwSize, SizeOf(dwSize)); p := GlobalLock(hMem); Stream.Write(p^, dwSize); GlobalUnlock(hMem); end else begin dwSize := 0; Stream.Write(dwSize, SizeOf(dwSize)); end; uiFormatId := EnumClipboardFormats(uiFormatId); end; finally CloseClipboard; end; end; end; procedure ClipBoardLoadFromStream(Stream: TStream); var hMem: THandle; uiFormatId: UINT; dwSize: DWORD; p: PCHAR; begin if OpenClipboard(0) then begin EmptyClipboard; try while Stream.Read(uiFormatId, SizeOf(uiFormatId)) = SizeOf(uiFormatId) do begin Stream.Read(dwSize, SizeOf(dwSize)); hMem := GlobalAlloc(GMEM_MOVEABLE, dwSize); p := GlobalLock(hMem); Stream.Read(p^, dwSize); GlobalUnlock(hMem); SetClipboardData(uiFormatId, hMem); GlobalFree(hMem); end; finally CloseClipboard; end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.