就像MSN里的功能,在系统浏览器里用CTRL+C选择了多个文件,再到MSN的对话框里用CTRL+V,MSN就会自动的把文件显示出来,进行传送。这个功能应该如何实现的???

解决方案 »

  1.   

    retrieve the filenames in the clipboard?  
    uses
      clipbrd, shellapi;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      f: THandle;
      buffer: array [0..MAX_PATH] of Char;
      i, numFiles: Integer;
    begin
      if not Clipboard.HasFormat(CF_HDROP) then Exit;
      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;