<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS:Минуты форматируются как часы. Как это исправить?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8027&amp;type=atom" />
	<updated>2013-02-01T18:54:02Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8027</id>
		<entry>
			<title type="html"><![CDATA[VBS:Минуты форматируются как часы. Как это исправить?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69034#p69034" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[griha09]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27540</uri>
			</author>
			<updated>2013-02-01T18:54:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69034#p69034</id>
		</entry>
</feed>
