有人知道如何在Delphi中复制文件吗?它喜欢在文件或文件夹上按 Ctrl+C,然后我们可以粘贴到某个地方?我只知道如何通过 Clipbrd Unit 复制文本,但我不知道文件、文件夹!请帮我 !
问问题
2508 次
2 回答
6
使用CF_HDROP
格式存储文件/文件夹的完整路径,或使用CF_SHELLIDLIST
格式存储文件/文件夹的ITEMIDLIST
. 有关详细信息,请参阅 MSDN:
或者,使用、或其他类似函数将文件夹/文件路径转换为ITEMIDLIST
值,然后使用从它们创建一个,然后将其传递给.SHParseDisplayName()
ILCreateFromPath()
SHCreateDataObject()
IDataObject
OleSetClipboard()
于 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 回答