请问:怎样从剪贴板中获取 已复制的文件的路径?(100分)

  • 主题发起人 梦之旅
  • 开始时间

梦之旅

Unregistered / Unconfirmed
GUEST, unregistred user!
比如:在一个文件(或文件夹)上面点右键,选择“复制”,这是已把这
个文件复制到了剪贴板中,现在就是怎么从剪贴板中获取 这个已复制的文件的路径?
谢!
 

"If I use the windows Explorer to copy a file,
how can I use a paste function in my app?
This code retrieves the filenames in the clipboard.
Now you may want to display a file in a memo or
do something else with it.

"Wenn ich im Windows Explorer eine Datei kopiere,
wie kann ich dann eine Einfüge Funktion implementieren ?
Der folgende Code listet alle Dateinamen in der Zwischenablage auf.
Dann kann man eine Datei z.B in ein Memo laden oder
etwas anderes damit anstellen.
}

uses
clipbrd, shellapi;

{$R *.DFM}

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;


 
TClipBoard有个函数:GetNamePath你试试
 
明天我测试一下,如果可以再给你们加份!
 
接受答案了.
 
顶部