加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB 将长路径转为短路径 & 获取剪粘板中的文件的列表

发布时间:2020-12-16 23:12:48 所属栏目:大数据 来源:网络整理
导读:将长路径转为短路径 Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String,ByVal lpszShortPath As String,ByVal cchBuffer As Long) As Long Private Function ShortPath(ByVal FileName As

将长路径转为短路径

Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String,ByVal lpszShortPath As String,ByVal cchBuffer As Long) As Long
Private Function ShortPath(ByVal FileName As String) As String
Dim S As String
On Error GoTo exitFunc:
S = String(255," ")
GetShortPathName FileName,S,255
ShortPath = Left(S,InStr(S,Chr(0)) - 1)
exitFunc:
End Function

获取剪粘板中的图片文件的列表

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)

Public mvarfilelist As String

Public Function ShowFilesOnClipboard() As String 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 ShowFilesOnClipboard = "" 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) CopyMemory df,ByVal lpResults,Len(df) Call CopyMemory(arBuffer(0),ByVal lpResults + df.pFiles,_ (lBufferSize - Len(df))) 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 ShowFilesOnClipboard = ShowFilesOnClipboard & "<img src='file:///" & ShortPath(vNames(i)) & "'><br>" i = i + 1 Wend End If End If CloseClipboard End Function

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读