Здравствуйте. помогите решить вопрос с которым я столкнулся.
Всем известно, что у всех файлов - есть свойства. Если щелкнуть правой клавишей мыши по видеофайлу - в ТоталКоммандере - можно заметить во вкладке "подробно" - такой параметр как "Продолжительность видео".
У меня возник вопрос - можно ли макросом извлечь этот параметр "продолжительности видео" - в зеленую ячейку, если адрес файла вписан в желтую ячейку ?
Здравствуйте. помогите решить вопрос с которым я столкнулся.
Всем известно, что у всех файлов - есть свойства. Если щелкнуть правой клавишей мыши по видеофайлу - в ТоталКоммандере - можно заметить во вкладке "подробно" - такой параметр как "Продолжительность видео".
У меня возник вопрос - можно ли макросом извлечь этот параметр "продолжительности видео" - в зеленую ячейку, если адрес файла вписан в желтую ячейку ?cerber412
Function TimeFilms(ByVal sFoderPath, ByVal sFileName) As String Dim objShell As Object Dim objFolder As Object Dim objItem As Object Dim strDate$ With CreateObject("Shell.Application") Set objFolder = .Namespace(sFoderPath) Set objItem = objFolder.Items.Item(sFileName) strDate = objFolder.GetDetailsOf(objItem, 27) Set objItem = Nothing: Set objFolder = Nothing TimeFilms = strDate End With End Function
[/vba]
[vba]
Код
Function TimeFilms(ByVal sFoderPath, ByVal sFileName) As String Dim objShell As Object Dim objFolder As Object Dim objItem As Object Dim strDate$ With CreateObject("Shell.Application") Set objFolder = .Namespace(sFoderPath) Set objItem = objFolder.Items.Item(sFileName) strDate = objFolder.GetDetailsOf(objItem, 27) Set objItem = Nothing: Set objFolder = Nothing TimeFilms = strDate End With End Function
cerber412, Все работает, просто там в аргументах путь к файлу, и имя файла. Либо руками на две ячейки разбивайте, или в скрипте. [vba]
Код
Function TimeFilms(ByVal sFilePath) As String Dim objShell As Object Dim objFolder As Object Dim objItem As Object Dim strDate$ Dim ObjFile As Object
Set ObjFile = CreateObject("Scripting.FileSystemObject").getfile(sFilePath) Set objFolder = CreateObject("Shell.Application").Namespace(ObjFile.parentFolder.Path) Set objItem = objFolder.Items.Item(ObjFile.Name) strDate = objFolder.GetDetailsOf(objItem, 27) Set objItem = Nothing: Set objFolder = Nothing: Set ObjFile = Nothing TimeFilms = strDate End Function
[/vba]
RAN спасибо за 27. вроде и не надо было но выше 13го и не поднимался.
может кому пригодится [vba]
Код
Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace("c:\") Set objFSO = CreateObject("Scripting.FileSystemObject") For i = 0 To 312 'Debug.Print objFolder.GetDetailsOf(objFolder.Items, i) Next
[/vba]
cerber412, Все работает, просто там в аргументах путь к файлу, и имя файла. Либо руками на две ячейки разбивайте, или в скрипте. [vba]
Код
Function TimeFilms(ByVal sFilePath) As String Dim objShell As Object Dim objFolder As Object Dim objItem As Object Dim strDate$ Dim ObjFile As Object
Set ObjFile = CreateObject("Scripting.FileSystemObject").getfile(sFilePath) Set objFolder = CreateObject("Shell.Application").Namespace(ObjFile.parentFolder.Path) Set objItem = objFolder.Items.Item(ObjFile.Name) strDate = objFolder.GetDetailsOf(objItem, 27) Set objItem = Nothing: Set objFolder = Nothing: Set ObjFile = Nothing TimeFilms = strDate End Function
[/vba]
RAN спасибо за 27. вроде и не надо было но выше 13го и не поднимался.
может кому пригодится [vba]
Код
Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace("c:\") Set objFSO = CreateObject("Scripting.FileSystemObject") For i = 0 To 312 'Debug.Print objFolder.GetDetailsOf(objFolder.Items, i) Next