Delphiでファイルをコピーする方法を知っている人はいますか? ファイルまたはフォルダーで Ctrl+C を押すと、どこかに貼り付けることができます。私は Clipbrd Unit でテキストをコピーする方法を知っていますが、ファイル、フォルダーではわかりません! 私を助けてください !
2 に答える
形式を使用しCF_HDROP
てファイル/フォルダーのフル パスCF_SHELLIDLIST
を保存するか、形式を使用してファイル/フォルダーのITEMIDLIST
. 詳細については、MSDN を参照してください。
または、 、、または他の同様の関数を使用してフォルダー/ファイル パスをITEMIDLIST
値に変換し、 を使用してそれらからを作成し、それを に渡します。SHParseDisplayName()
ILCreateFromPath()
SHCreateDataObject()
IDataObject
OleSetClipboard()
クリップボードとドラッグ アンド ドロップには多くの共通点があります。ドラッグ&ドロップをサポートするほとんどのライブラリには、クリップボードに必要なものもすべて含まれています。たとえば、次のライブラリを確認してください: http://melander.dk/delphi/dragdrop/
無料で、完全なソースコードがあり、クリップボード操作を含む多くの例があります。
例の 1 つは DragDrop\Demos\Unicode\DragDropUnicode.dproj で、「クリップボードにコピー」というポップアップ コマンドがあります。
procedure TForm1.ActionFileCopyExecute(Sender: TObject);
begin
if (FFiles = '') then
DropFileSource1.Files.Text := LoadResString(0)
else
DropFileSource1.Files.Text := FFiles;
DropFileSource1.CopyToClipboard;
end;
それが役に立てば幸い。