掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
クリップボードのあらゆる形式の内容をファイルに保存するのは (ID:29139)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
RegisterClipboardFormat でシステムに登録された数の取得方法は知らないのでとりあえず 99 にしてある Button1 でファイルに保存 Button2 でクリア Button3 でファイルから読み込み procedure TForm1.Button1Click(Sender: TObject); var I : Integer; Data: THandle; DataPointer : Pointer; MemoryStream : TMemoryStream; Buffer : array[0..255] of Char; begin MemoryStream := TMemoryStream.Create; try ClipBoard := TClipBoard.Create; try ClipBoard.Open; try for I:=0 to ClipBoard.FormatCount -1 do begin if ClipBoard.HasFormat(ClipBoard.Formats[I]) = True then begin Data := GetClipBoardData(I); DataPointer := GlobalLock(Data); try MemoryStream.Clear; MemoryStream.WriteBuffer(DataPointer^, GlobalSize(Data)); MemoryStream.SaveToFile(IntToStr(I)+'.DAT'); finally GlobalUnlock(Data); end; end; end; finally ClipBoard.Close; end; finally ClipBoard.Free; end; finally MemoryStream.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); begin ClipBoard := TClipBoard.Create; ClipBoard.Open; ClipBoard.Clear; ClipBoard.Close; ClipBoard.Free; end; procedure TForm1.SetBuffer(Format: Word; var Buffer; Size: Integer); var Data: THandle; DataPtr: Pointer; begin Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size); try DataPtr := GlobalLock(Data); try Move(Buffer, DataPtr^, Size); SetClipboardData(Format, Data); finally GlobalUnlock(Data); end; except GlobalFree(Data); raise; end; end; procedure TForm1.Button3Click(Sender: TObject); var FileName : String; I,C : Integer; Data: THandle; DataPointer : Pointer; MemoryStream : TMemoryStream; begin MemoryStream := TMemoryStream.Create; try ClipBoard := TClipBoard.Create; try ClipBoard.Open; try for I:=0 to 99 do begin FileName := IntToStr(I) + '.DAT'; if FileExists(FileName) = True then begin MemoryStream.Clear; MemoryStream.LoadFromFile(FileName); SetBuffer(I, MemoryStream.Memory^, MemoryStream.Size); end; end; finally ClipBoard.Close; end; finally ClipBoard.Free; end; finally MemoryStream.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.