-5

有人知道如何在Delphi中复制文件吗?它喜欢在文件或文件夹上按 Ctrl+C,然后我们可以粘贴到某个地方?我只知道如何通过 Clipbrd Unit 复制文本,但我不知道文件、文件夹!请帮我 !

4

2 回答 2

6

使用CF_HDROP格式存储文件/文件夹的完整路径,或使用CF_SHELLIDLIST格式存储文件/文件夹的ITEMIDLIST. 有关详细信息,请参阅 MSDN:

Shell 剪贴板格式

或者,使用、或其他类似函数将文件夹/文件路径转换为ITEMIDLIST值,然后使用从它们创建一个,然后将其传递给.SHParseDisplayName()ILCreateFromPath()SHCreateDataObject()IDataObjectOleSetClipboard()

于 2013-09-01T06:50:32.263 回答
3

剪贴板和拖放有很多共同点。大多数支持拖放的库也拥有剪贴板所需的一切。例如检查这个库: http: //melander.dk/delphi/dragdrop/

它是免费的,具有完整的源代码,并且有很多示例,包括剪贴板操作。

示例之一是 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;

希望能帮助到你。

于 2013-09-01T07:51:24.000 回答