方法一,通过Windows Media Player:
Sub 视频长度()
Dim FSO As Object, FDR As Object, F As Object, i As Variant
Dim iMPlayer As New MediaPlayer.MediaPlayer
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FDR = FSO.GetFolder("F:\编辑\视频") '视频路径
Set F = FDR.Files
For Each i In F
iMPlayer.Open i
DoEvents
Loop
iMPlayer.Stop
a = a + iMPlayer.Duration
Set iMPlayer = Nothing
Next i
MsgBox a
End Sub
---------------------------------------------------------------------------------------------------------------------------------
方法二, 通过shell32对象:
除了楼主的方法外(引用MEDIAPLAYER控件外),可以使用以下方法:
Option Explicit
Function GetFileDuration(FolderSpec As String) As Date
'请在VBE/工具/引用中勾选对于MICROSOFT SHELL CONTROLS AND AUTOMATION
Dim SHL As New Shell32.Shell
Dim SHFD As Shell32.Folder
Dim F As Object
Set SHFD = SHL.NameSpace(FolderSpec)
For Each F In SHFD.Items
If InStr(1, F.Name, ".WMV", vbTextCompare) Then
GetFileDuration = GetFileDuration + SHFD.GetDetailsOf(F, 21)
End If
Next
End Function
Sub Example()
MsgBox GetFileDuration("F:\Pictures\Microsoft")
End Sub
说明:
shell32对象非常有用,利用它几乎可以访问文件的所有信息。
---------------------------------------------------------------------------------------------------------------------------------------------
引用地址:
http://club.excelhome.net/thread-329130-1-1.html