Страница: 1 | 
		
		
			
	
		 
		
			
  
    |  | Вопрос: Работа с содержимым буфера обмена | Добавлено: 11.06.09 16:56 |  | 
		
			
			  
    
      | Автор вопроса:  AlexCage | 
    
      | Пользователь выбирает в папке файлы и копирует в буфер, затем запускает процедуру, которая берет файлы указанные в буфере, переносит в заданную папку. Возможно ли реализовать даную задачу, подскажите где поискать инфу, плз? Ответить
       | 
  
		
			
		
		
			
		
	  
	  
	  
	  
    
      | Номер ответа: 4 Автор ответа:
 
  AlexCage 
 
   
 Вопросов: 1
 Ответов: 2
 
 | Профиль |  | #4 | Добавлено:  13.06.09 02:37 | 
    
      | VβÐ Uηit, пасиб за ответ. Короче вот чего получается. 
 
  Public Type POINTAPI
x As Long
y As Long
End Type
 ...
Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function CloseClipboard Lib "user32" () As Long
Public Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long)
Public Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
Public Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
...
 Public Const CF_HDROP As Long = 15
...
 Private Function TrimNull(ByVal sTmp As String) As String
Dim nNul As Long
nNul = InStr(sTmp, vbNullChar)
Select Case nNul
    Case Is > 1
        TrimNull = Left(sTmp, nNul - 1)
    Case 1
        TrimNull = ""
    Case 0
        TrimNull = Trim(sTmp)
End Select
End Function
 ...
Sub PasteFilesFromClipboard()
Dim hDrop As Long
Dim nFiles As Long
Dim i As Long
Dim desc As String
Dim filename As String
Dim pt As POINTAPI
Const MAX_PATH As Long = 260
Dim sFiles() As String
 If IsClipboardFormatAvailable(CF_HDROP) Then
    If OpenClipboard(0&) Then
                hDrop = GetClipboardData(CF_HDROP)         nFiles = DragQueryFile(hDrop, -1&, "", 0)
        
                ReDim sFiles(0 To nFiles - 1) As String
        filename = Space(MAX_PATH)
        
                For i = 0 To nFiles - 1
            Call DragQueryFile(hDrop, i, filename, Len(filename))
            sFiles(i) = TrimNull(filename)
            MsgBox sFiles(i)
        Next
        
                Call CloseClipboard
    End If
    ...
    
End If
End Sub
 Плз, подскажите из-за чего может вылезать данная ошибка?
 Ответить
       | 
  
	  Страница: 1 | 
 
		
			Поиск по форуму