<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS:Минуты форматируются как часы. Как это исправить?]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8027</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8027&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS:Минуты форматируются как часы. Как это исправить?».]]></description>
		<lastBuildDate>Fri, 01 Feb 2013 18:54:02 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBS:Минуты форматируются как часы. Как это исправить?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69034#p69034</link>
			<description><![CDATA[<p>на основе скрипта из темы <a href="http://forum.script-coding.com/viewtopic.php?id=1031">VBScript: воспроизведение аудио</a> решил сделать скрипт подсчитывающий продолжительность всей музыки в папке:<br /></p><div class="codebox"><pre><code>&#039;посчитываем общую длину музыки в папке
input = &quot;D:\Музыка\&quot;            &#039;папка input
i=0

Set WMPlayer = New WMPlayerClass
Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set WSHShell = WScript.CreateObject(&quot;WScript.Shell&quot;)

RecursiveFolderScan input

&#039;Создаём процедуру рекурсивного обхода каталога
Sub RecursiveFolderScan(FolderPath)
    &#039;Получаем объектную модель текущего каталога
    Set Folder = objFSO.GetFolder(FolderPath)
 
    &#039;Перебираем все файлы в текущем каталоге
    For Each File in Folder.Files

&#039;/// Открываем ресурс
WMPlayer.OpenMedia File

i=i+CDate(WMPlayer.CurrentMedia.DurationString)        &#039;счетчик продолжительности
    Next
 
    &#039;Перебираем все подкаталоги в каталоге
    For Each SubFolder in Folder.SubFolders
        RecursiveFolderScan(SubFolder.Path)
    Next
Set WSHShell = Nothing

End Sub

MsgBox &quot;Общая продолжительность: &quot;&amp;i,vbInformation,&quot;WMPlayerClass&quot;




&#039;/// Класс проигрывателя
Class WMPlayerClass
    &#039;/// Переменная для хранения ссылки на объект плеера
    Dim WMPlayer
    Private Sub Class_Initialize()
        Set WMPlayer = CreateObject(&quot;WMPlayer.OCX&quot;)
        WMPlayer.settings.autoStart = False
        WMPlayer.settings.enableErrorDialogs = False
    End Sub

    &#039;/// Свойство возвращает ссылку на объект настроек плеера
    Public Property Get Settings
        Set Settings = WMPlayer.Settings
    End Property

    &#039;/// Метод подключения к ресурсу
    Function OpenMedia(URL)
        &#039;/// Несколько из констант состояния открытия
        Const wmposMediaLoading = 11
        Const wmposMediaLocating = 9
        Const wmposPlaylistOpenNoMedia = 6
        Const wmposMediaOpen = 13
        Const wmposPlaylistOpening = 5
        Const wmposOpeningUnknownURL = 21
        Const wmposUndefined = 0

        &#039;/// Для корректного получения данных о содержимом, нужно открыть ресурс.
        WMPlayer.URL = URL
        &#039;/// Убираем звук        
        WMPlayer.settings.mute=true
        &#039;/// Запускаем на проигрывание
        WMPlayer.controls.Play
        &#039;/// Ждём состояния открытия файла. Если файл открыть не удалось вернётся wmposPlaylistOpenNoMedia
        Do
            WScript.Sleep 10
        Loop Until WMPlayer.OpenState = wmposMediaOpen or WMPlayer.OpenState=wmposPlaylistOpenNoMedia
        &#039;/// Останавливаем проигрывание
        WMPlayer.controls.Stop
        &#039;/// Возвращаем звук
        WMPlayer.settings.mute=false
    End Function

    &#039;/// Свойство возвращает ссылку на параметры открытого файла
    Public Property Get CurrentMedia
        Set CurrentMedia = WMPlayer.CurrentMedia
    End Property

    &#039;/// Метод запуска проигрывания
    Function Play()
        WMPlayer.Controls.Play
        &#039;/// Ожидаем окончания проигрывания (ждём пока плеер не перейдёт в состояние остановки)
        Do
            WScript.Sleep 100
        Loop Until WMPlayer.playState = 1
    End Function
End Class</code></pre></div><p> </p><p>все считает, но минуты форматируются как часы, в итоге 24 мин 26 сек выводятся как 31.12.1899 0:26:00<br />Как это исправить?<br />Как прочитать продолжительность и другие видео-аудио-параметры видеофайла(хотя бы avi)?</p>]]></description>
			<author><![CDATA[null@example.com (griha09)]]></author>
			<pubDate>Fri, 01 Feb 2013 18:54:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69034#p69034</guid>
		</item>
	</channel>
</rss>
