'Добавьте на форму элемент CommandButton и ListBox. 'Вставьте код, запустите. Затем переключитесь в Проводник, выберите 'несколько файлов, скопируйте их. 'Затем перейдите в вашу программу и нажмите на кнопку.
Private Const CF_HDROP = 15
Private Type POINT x As Long y As Long End Type
Private Type DROPFILES pFiles As Long pt As POINT fNC As Long fWide As Long End Type
Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub ShowFilesOnClipboard() Dim lHandle As Long Dim lpResults As Long Dim lRet As Long Dim df As DROPFILES Dim strDest As String Dim lBufferSize As Long Dim arBuffer() As Byte Dim vNames As Variant Dim i As Long
If OpenClipboard(0) Then lHandle = GetClipboardData(CF_HDROP) ' If you don't find a CF_HDROP, you don't want To process anything If lHandle > 0 Then lpResults = GlobalLock(lHandle)
lBufferSize = GlobalSize(lpResults) ReDim arBuffer(0 To lBufferSize)
If df.fWide = 1 Then ' it Is wide chars--unicode strDest = arBuffer Else strDest = StrConv(arBuffer, vbUnicode) End If GlobalUnlock lHandle vNames = Split(strDest, vbNullChar) i = 0 While Len(vNames(i)) > 0 List1.AddItem vNames(i) i = i + 1 Wend End If End If CloseClipboard End Sub
Private Sub Command1_Click() List1.Clear Call ShowFilesOnClipboard End Sub
Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Хотите знать, какие файлы скопированы в память?", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!