hur kopierar man filer till klippbordet för att sedan klistra in i utforskaren. Hej hur jag kopierar filerna direkt vet jag. Hej igen Här är en funktion för att kopierara filer til klippbordet.kopiera filer till klippbordet
MVH
JohanSv: kopiera filer till klippbordet
Måste du gå över klippbordet
kan du inte köra över direkt med
FileCopy källfil,destination
mvh
SvenSv: kopiera filer till klippbordet
det är ju en bra funktion att ha eftersom den funktionen finns i de flesta program som hanterar filer. Det finns en länk under Resource Collection Library men länken är död.Sv: kopiera filer till klippbordet
Om du kopierar via klippbordet till Utforskaren
så är det bara sökvägen man kopierar.
Dvs det enda du behöver kopier är en textsträng
som innehåller rätt sökväg till filen.
mvh
SvenSv: kopiera filer till klippbordet
Parametern kan vara en array eller collection.
Klistra in koden i en modul:
Private Const CF_HDROP = 15
Private Const GMEM_MOVEABLE = &H2
Private Const GMEM_ZEROINIT = &H40
Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type DROPFILES
pFiles As Long
pt As POINTAPI
fNC As Long
fWide As Long
End Type
Private Declare Function EmptyClipboard Lib "user32" () 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 SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes 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 Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Function CopyFilesToClipBoard(Files As Variant) As Boolean
Dim vTemp As Variant
Dim sData As String
Dim df As DROPFILES
Dim hGlobal As Long
Dim lpGlobal As Long
If OpenClipboard(0&) Then
Call EmptyClipboard
For Each vTemp In Files
sData = sData & vTemp & vbNullChar
Next
sData = sData & vbNullChar
hGlobal = GlobalAlloc(GHND, Len(df) + Len(sData))
If hGlobal Then
lpGlobal = GlobalLock(hGlobal)
df.pFiles = Len(df)
Call CopyMem(ByVal lpGlobal, df, Len(df))
Call CopyMem(ByVal (lpGlobal + Len(df)), ByVal sData, Len(sData))
Call GlobalUnlock(hGlobal)
If SetClipboardData(CF_HDROP, hGlobal) Then
CopyFilesToClipBoard = True
End If
End If
Call CloseClipboard
End If
End Function