我寫了一段PB代碼,但是運行回出錯,大家幫我看看,錯在那里
Private 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
//從Windows Explorer中Copy的檔案名
FUNCTION long GlobalSize(long hMem) LIBRARY "kernel32"
FUNCTION long GlobalLock(long hMem) LIBRARY "kernel32"
FUNCTION long GlobalUnlock(long hMem) LIBRARY "kernel32"
FUNCTION long OpenClipboard(long hMem) LIBRARY "user32"
FUNCTION long CloseClipboard() LIBRARY "user32"
FUNCTION long GetClipboardData(long wFormat) LIBRARY "user32"
SUBROUTINE CopyMemory(Any Destination,Any Source,long Length) LIBRARY "kernel32" alias for "RtlMoveMemory"
代碼:
long lHandle
long lpResults
long lRet
DROPFILES df
String strDest
Long lBufferSize
char arBuffer[]
any vNames
Long i
If OpenClipboard(0)=1 Then
lHandle = GetClipboardData(CF_HDROP)
If lHandle > 0 Then
lpResults = GlobalLock(lHandle)
lBufferSize = GlobalSize(lpResults)
for i=1 to lBufferSize
arBuffer[upperbound(arBuffer) +1]=string(i)
next
CopyMemory(df,lpResults,Len(string(df)))
CopyMemory(arBuffer,lpResults+df.pfiles,lBufferSize - Len(string(df)) )
//If df.fWide = 1 Then
strDest = arBuffer
//Else
// strDest = StrConv(arBuffer, vbUnicode)
//End If
GlobalUnlock(lHandle)
CloseClipboard()
messagebox('',strDest)
end if
end if
uj5u.com熱心網友回復:
自己頂呀!沒有人幫忙呀
uj5u.com熱心網友回復:
把出錯的貼出來uj5u.com熱心網友回復:
主要是這一段CopyMemory(df,lpResults,Len(string(df)))
CopyMemory(arBuffer,lpResults+df.pfiles,lBufferSize - Len(string(df)) )
不太明白意思你在PB中的使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/94945.html
標籤:API 調用
