如何实现在我的程序中listview 中点击复制文件,在Windows的资源管理器中,点击粘贴,就可以完成文件的拷贝。

解决方案 »

  1.   

    前几天刚作过,源代码不在本机上,抱歉。我记得当初是在Hubdog的葵花宝典中查到的。
      

  2.   

    把文件转化为流复制到剪贴版
    Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream );
      Var
        hMem: THandle;
        pMem: Pointer;
      Begin
        S.Position := 0;
        hMem := GlobalAlloc( GHND or GMEM_DDESHARE, S.Size );
        If hMem <> 0 Then Begin
          pMem := GlobalLock( hMem );
          If pMem <> Nil Then Begin
            S.Read( pMem^, S.Size );
            S.Position := 0;
            GlobalUnlock( hMem );
            Clipboard.Open;
            try
              Clipboard.SetAsHandle( fmt, hMem );
            finally
              Clipboard.Close;
            end;
          End { If }
          Else Begin
            GlobalFree( hMem );
            OutOfMemoryError;
          End;
        End { If }
        Else
          OutOfMemoryError;
      End; { CopyStreamToClipboard }
      

  3.   

    同意,
    将内容先copy到Windows剪贴板