在windows下,文件的拷贝可以直接用
copyfile()实现
但是利用键盘,鼠标,拷贝粘贴文件的时候是调用那个
api

解决方案 »

  1.   

    剪贴版函数(openclipboard、setclipboard等)或OLE类
    可参看vc技术内幕第四版第25章,及《COM原理与应用》中的相关内容
      

  2.   

    用的系统的剪贴板来实现,OpenClipBoard()之后望里面写数据,然后关闭,在其他的地方再打开取出数据而已
      

  3.   

    COleDataSource等OLE类也可实现,即通过OLE拖放的形式
      

  4.   

    剪贴版函数(openclipboard、setclipboard等)或OLE类
    可参看vc技术内幕第四版第25章,及《COM原理与应用》中的相关内容
      

  5.   

    SHFileOperation
    WINSHELLAPI int WINAPI SHFileOperation(
        LPSHFILEOPSTRUCT lpFileOp
    ); Copies, moves, renames, or deletes a file system object. Returns zero if successful, or nonzero otherwise. 
    lpFileOp 
    Address of an SHFILEOPSTRUCT structure that contains information this function needs to carry out the specified operation. 
      

  6.   

    CString strTest("this is my test for clipboard");
    int  iLength = strTest.GetLength();//得到长度

    static PTSTR pText1 ;
    HGLOBAL      hGlobal1 ;
    PTSTR        pGlobal1 ;

    pText1 = (PTSTR)malloc (iLength + 1) ;//开辟pText1内存块
    lstrcpy(pText1 , strTest);
    hGlobal1 = GlobalAlloc (GHND | GMEM_SHARE, 
    (lstrlen (pText1) + 1) * sizeof (TCHAR)) ;
    //分配一个足以保存字符串的内存块,其中还包括一个终止符NULL

    pGlobal1 = (PTSTR)GlobalLock (hGlobal1) ;//锁定块并得到指向它的一个指针
    lstrcpy (pGlobal1, pText1) ;//字串符复制到内存块中
    GlobalUnlock (hGlobal1) ;//内存解锁
        
    OpenClipboard () ;//打开剪贴板
    EmptyClipboard () ;//清空剪贴板
    SetClipboardData (CF_TEXT, hGlobal1) ;//利用标识符把内存句柄交给剪贴板,
    CloseClipboard () ;//再关闭剪贴板 CString strReplacced("");
    static PTSTR pText ;
    HGLOBAL      hGlobal ;
    PTSTR        pGlobal ;

    //下面将剪贴板的数据放在替换对话框的要替换内容中
    if( IsClipboardFormatAvailable(CF_TEXT) == TRUE)
             //确定剪贴板是否含有CF_TEXT格式的数据
    {
    if(OpenClipboard () )//打开剪贴板
    {

    if(hGlobal = GetClipboardData (CF_TEXT))
                                //得到引用文本的内存块句柄
    {
    pGlobal = (PTSTR)GlobalLock (hGlobal) ;
                                        //获得指向剪贴板块的指针,锁定
    }

    if (pText)//释放原有的数据内容
    {
    free (pText) ;
    pText = NULL ;
    }

    pText = (PTSTR)malloc (GlobalSize (hGlobal)) ;
                               //分配一块与剪贴板数据块大小相同的内存快,并分配一个指向该块的指针
    lstrcpy (pText, (PTSTR)pGlobal) ;//数据复制

    // strReplacced = pText; MessageBox(pText, "从我放入剪贴板中数据读取到的:", MB_OK);

    GlobalUnlock (hGlobal) ;//解锁内存块
    CloseClipboard () ;//关闭剪贴板
    }
    }
      

  7.   

    shell编程,以及
    hook钩子涵数
      

  8.   

    bugyouth(雪落无声) ( )话的很全面了.