Vb6读取照片拍摄时间
时间: 2023-06-19 13:03:14 浏览: 44
在VB6中,可以使用Windows API函数读取照片的属性信息,包括拍摄时间。具体步骤如下:
1. 导入Windows API函数库:在模块中添加以下代码:
```
Public Declare Function GetFileVersionInfo Lib "Version.dll" Alias _
"GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwHandle As Long, _
ByVal dwLen As Long, lpData As Any) As Long
Public Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias _
"GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long
Public Declare Function VerQueryValue Lib "Version.dll" Alias _
"VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lpBuffer As Any, _
puLen As Long) As Long
```
2. 获取照片属性信息:在代码中调用以下函数,传入照片文件路径和需要获取的属性信息名称,即可获取该属性信息的值。
```
Public Function GetPhotoProperty(ByVal strFilePath As String, _
ByVal strPropertyName As String) As String
Dim lngVerPointer As Long, lngVerLength As Long, lngVerQuery As Long
Dim bytBuffer() As Byte, strValue As String, lngValueLength As Long
Dim strQueryName As String
Dim varValue As Variant
'获取版本信息大小
lngVerLength = GetFileVersionInfoSize(strFilePath, lngVerPointer)
If lngVerLength = 0 Then Exit Function
'获取版本信息
ReDim bytBuffer(lngVerLength - 1)
lngVerQuery = GetFileVersionInfo(strFilePath, 0, lngVerLength, bytBuffer(0))
If lngVerQuery = 0 Then Exit Function
'查询属性信息
strQueryName = "\StringFileInfo\040904E4\" & strPropertyName
lngVerQuery = VerQueryValue(bytBuffer(0), strQueryName, varValue, lngValueLength)
If lngVerQuery = 0 Then Exit Function
'返回属性值
strValue = varValue
GetPhotoProperty = strValue
End Function
```
3. 调用函数获取照片拍摄时间:在需要获取照片拍摄时间的地方,调用函数GetPhotoProperty,传入照片文件路径和属性名称"Image DateTime",即可获取照片拍摄时间。
```
Dim strFilePath As String, strPhotoTime As String
strFilePath = "C:\Photos\example.jpg"
strPhotoTime = GetPhotoProperty(strFilePath, "Image DateTime")
MsgBox strPhotoTime
```