想在自己的资源管理器中完成复制、粘贴功能,但又要和操作系统的联系起来。是不是一定要用剪帖板?请给我讲一下怎么用,行吗?我可以得到文件的路径。谢谢。

解决方案 »

  1.   

    How to Get Windows Copy File List from the ClipBoard
    --------------------------------------------------------------------BOOL f = ::IsClipboardFormatAvailable(CF_HDROP);
    if (f)
    {
    f = ::OpenClipboard(GetSafeHwnd());
    HDROP hDrop = (HDROP)GetClipboardData(CF_HDROP);
    UINT cFiles = ::DragQueryFile(hDrop, (UINT)-1, NULL, 0);
    CString szText;
    szText.Format( "There are %d files/directories\r\n", cFiles ); char szFile[MAX_PATH]; for( UINT count = 0; count < cFiles; count++ )
    {
    ::DragQueryFile(hdrop, count, szFile, sizeof(szFile));
    szText += szFile;
    szText += "\r\n";
    }
    f = ::CloseClipboard();
    }
      

  2.   


                    How to Copy File to Clipboard
    -------------------------------------------------------------------
    f = ::OpenClipboard(GetSafeHwnd());
    HGLOBAL hFileGlobal = ::GlobalAlloc(
       GMEM_MOVEABLE | GMEM_DDESHARE, 
       1024 * MAX_PATH);CHAR *pFileBuf = (CHAR *)::GlobalLock(hFileGlobal);
    strcpy(pFileBuf, (LPCTSTR)strFileList);
    ::GlobalUnlock(hFileGlobal);::SetClipboardData(CF_HDROP, hFileGlobal);
    ::GlobalFree(hFileGlobal);f = ::CloseClipboard();
      

  3.   

    strcpy(pFileBuf, (LPCTSTR)strFileList);
    中的第二个参数是文件路径吗?谢谢!
      

  4.   

    yeah, strFileList is file path
      

  5.   

    file path include <<a file's path>> and <<a directory's path>>
    you should try first..
    If you want to set relation with OS when copy & paste file..the only method is use clipboard; that's all
      

  6.   

    其实有个简单的方法,写一个批处理文件,然后ShellExecute执行一下就可以了。
      

  7.   

    还有直接调用CopyFile函数来解决这个问题