Тема: VBS:Минуты форматируются как часы. Как это исправить?
на основе скрипта из темы VBScript: воспроизведение аудио решил сделать скрипт подсчитывающий продолжительность всей музыки в папке:
'посчитываем общую длину музыки в папке
input = "D:\Музыка\" 'папка input
i=0
Set WMPlayer = New WMPlayerClass
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
RecursiveFolderScan input
'Создаём процедуру рекурсивного обхода каталога
Sub RecursiveFolderScan(FolderPath)
'Получаем объектную модель текущего каталога
Set Folder = objFSO.GetFolder(FolderPath)
'Перебираем все файлы в текущем каталоге
For Each File in Folder.Files
'/// Открываем ресурс
WMPlayer.OpenMedia File
i=i+CDate(WMPlayer.CurrentMedia.DurationString) 'счетчик продолжительности
Next
'Перебираем все подкаталоги в каталоге
For Each SubFolder in Folder.SubFolders
RecursiveFolderScan(SubFolder.Path)
Next
Set WSHShell = Nothing
End Sub
MsgBox "Общая продолжительность: "&i,vbInformation,"WMPlayerClass"
'/// Класс проигрывателя
Class WMPlayerClass
'/// Переменная для хранения ссылки на объект плеера
Dim WMPlayer
Private Sub Class_Initialize()
Set WMPlayer = CreateObject("WMPlayer.OCX")
WMPlayer.settings.autoStart = False
WMPlayer.settings.enableErrorDialogs = False
End Sub
'/// Свойство возвращает ссылку на объект настроек плеера
Public Property Get Settings
Set Settings = WMPlayer.Settings
End Property
'/// Метод подключения к ресурсу
Function OpenMedia(URL)
'/// Несколько из констант состояния открытия
Const wmposMediaLoading = 11
Const wmposMediaLocating = 9
Const wmposPlaylistOpenNoMedia = 6
Const wmposMediaOpen = 13
Const wmposPlaylistOpening = 5
Const wmposOpeningUnknownURL = 21
Const wmposUndefined = 0
'/// Для корректного получения данных о содержимом, нужно открыть ресурс.
WMPlayer.URL = URL
'/// Убираем звук
WMPlayer.settings.mute=true
'/// Запускаем на проигрывание
WMPlayer.controls.Play
'/// Ждём состояния открытия файла. Если файл открыть не удалось вернётся wmposPlaylistOpenNoMedia
Do
WScript.Sleep 10
Loop Until WMPlayer.OpenState = wmposMediaOpen or WMPlayer.OpenState=wmposPlaylistOpenNoMedia
'/// Останавливаем проигрывание
WMPlayer.controls.Stop
'/// Возвращаем звук
WMPlayer.settings.mute=false
End Function
'/// Свойство возвращает ссылку на параметры открытого файла
Public Property Get CurrentMedia
Set CurrentMedia = WMPlayer.CurrentMedia
End Property
'/// Метод запуска проигрывания
Function Play()
WMPlayer.Controls.Play
'/// Ожидаем окончания проигрывания (ждём пока плеер не перейдёт в состояние остановки)
Do
WScript.Sleep 100
Loop Until WMPlayer.playState = 1
End Function
End Class
все считает, но минуты форматируются как часы, в итоге 24 мин 26 сек выводятся как 31.12.1899 0:26:00
Как это исправить?
Как прочитать продолжительность и другие видео-аудио-параметры видеофайла(хотя бы avi)?

