龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

VB与Windows资源管理器互拷文件(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
为剪贴版拷贝操作分配相应大小的内存 hGlobal = GlobalAlloc(GHND, Len(df) + Len(data)) If hGlobal Then lpGlobal = GlobalLock(hGlobal) df.pFiles = Len(df) 将DropFiles结构拷贝到内存中

        '为剪贴版拷贝操作分配相应大小的内存
        hGlobal = GlobalAlloc(GHND, Len(df) + Len(data))
        If hGlobal Then
            lpGlobal = GlobalLock(hGlobal)
        
            df.pFiles = Len(df)
     '将DropFiles结构拷贝到内存中
            Call CopyMem(ByVal lpGlobal, df, Len(df))
     '将文件全路径名拷贝到分配的内存中。
            Call CopyMem(ByVal (lpGlobal + Len(df)), ByVal data, _
                Len(data))
            Call GlobalUnlock(hGlobal)
        
            '将数据拷贝到剪贴版上
     If SetClipboardData(CF_HDROP, hGlobal) Then
                clipCopyFiles = True
            End If
        End If
        Call CloseClipboard
    End If
End Function

Public Function clipPasteFiles(Files() As String) As Long
   Dim hDrop As Long
   Dim nFiles As Long
   Dim i As Long
   Dim desc As String
   Dim filename As String
   Dim pt As POINTAPI
   Dim tfStr As SHFILEOPSTRUCT
   Const MAX_PATH As Long = 260
  
   '确定剪贴版的数据格式是文件,并打开剪贴版
   If IsClipboardFormatAvailable(CF_HDROP) Then
        If OpenClipboard(0&) Then
            hDrop = GetClipboardData(CF_HDROP)
            '获得文件数
            nFiles = DragQueryFile(hDrop, -1&, "", 0)
     
            ReDim Files(0 To nFiles - 1) As String
            filename = Space(MAX_PATH)
        
            '确定执行的操作类型为拷贝操作
     tfStr.wFunc = FO_COPY
     '目的路径设置为File1指定的路径
            tfStr.pTo = Form1.File1.Path
        
            For i = 0 To nFiles - 1
  '根据获取的每一个文件执行文件拷贝操作
                Call DragQueryFile(hDrop, i, filename, Len(filename))
                Files(i) = TrimNull(filename)
                tfStr.pFrom = Files(i)
                SHFileOperation tfStr
            Next i
            Form1.File1.Refresh
            Form1.Dir1.Refresh
        
            Call CloseClipboard
        End If
        clipPasteFiles = nFiles
    End If
End Function

精彩图集

赞助商链接