Arquivo

Posts Tagged ‘Path’

Obtendo path e o nome do arquivo da área de transferência

Veja neste artigo como obter o path de arquivos que estão na área de transferência.

Certa vez em uma postagem, um colega perguntou-me como obter o path do arquivo que estava na área de transferência, respondi à ele que ao meu ver isto era impossível de se realizar, porém pesquisaria melhor sobre o assunto e lhe daria uma resposta mais exata. Mas depois de averiguar, vi que estava errado. Espero que esse artigo ajude esse colega, e vários outros que precisam do path do arquivo que esteja na área de transferência.

Este exemplo demonstra como extrair os nomes de arquivos “caminho completo” da área de transferência. Então vamos criar um novo projeto VCL e vamos inserir um componente TMemo ( Memo1 ) e um TButton ( Button1 ). Não se esqueça de declarar na seção Uses a classe “Clipboard” e “ShellAPI”. Veja a imagem de nosso projeto na figura abaixo:

Figura 1: Layout do projeto

Temos agora que codificar o OnClick do botão para quando clicarmos nele, seja fornecida a lista de arquivos que estão na área de transferência.

Listagem 1: No Evento OnClick do Button1 digite o seguinte código

procedure TForm1.Button1Click(Sender: TObject);
var
f: THandle;
buffer: Array [0 .. MAX_PATH] of Char;
i, numFiles: Integer;
begin
Clipboard.Open;
try
f := Clipboard.GetAsHandle(CF_HDROP);
If f <> 0 Then
begin
numFiles := DragQueryFile(f, $FFFFFFFF, nil, 0);
Memo1.Clear;
for i := 0 to numFiles - 1 do
begin
buffer[0] := #0;
DragQueryFile(f, i, buffer, sizeof(buffer));
Memo1.Lines.Add(buffer);
end;
end;
finally
Clipboard.Close;
end;
end;

Selecione os arquivos que desejas, copiar no Windows Explorer, Windows, e então pressione o botão “Button1” de sua aplicação. Uma lista de arquivos selecionados para copiar será exibido no componente “TMemo”.

Espero que tenham gostado, e que os códigos e dicas tenham facilitado o trabalho e estudo de vocês.

Muito obrigado. Fico por aqui, e espero por vocês na próxima! Grande abraço.

Código Fonte
Categorias:Artigos, Delphi Tags:, ,
%d blogueiros gostam disto: