Cita:
Empezado por scaballero
necesito saber como pegar algo que ya esté copiado en en el portapapeles de windows en un directorio
|
Si hablas de un directorio, entonces supongo que te refieres a copiar los archivos del portapapeles.
En principio, el siguiente procedimiento te devuelve una lista de los nombres (incluyendo la ruta) de los archivos que estén en el portapapeles:
Código Delphi
[-]
procedure GetFilesFromClipboard(Files: TStrings);
var
Drop: Cardinal;
Count, I: Integer;
Buffer: PChar;
BufferSize: Integer;
begin
if Clipboard.HasFormat(CF_HDROP) then
begin
Drop := Clipboard.GetAsHandle(CF_HDROP);
Count := DragQueryFile(Drop, $FFFFFFFF, nil, 0);
for I := 0 to Count - 1 do
begin
BufferSize := DragQueryFile(Drop, I, nil, 0) + 1;
GetMem(Buffer, BufferSize);
try
DragQueryFile(Drop, I, Buffer, BufferSize);
Files.Add(Buffer);
finally
FreeMem(Buffer);
end;
end;
end;
end;
Por ejemplo,
Código Delphi
[-]
GetFilesFromClipboard(Memo1.Lines);
te pondría la lista en un Memo. El punto es que, teniendo ya la lista de nombres de archivos, puedes ya copiarlos uno a uno con la función CopyFile.
// Saludos