Çözüldü Ts dosyası süresi

Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Merhaba arkadaşlar;

Ts ( Transport Stream ) dosyasının süresini dosyayı açmadan command buton ile alabilirmiyiz ?

yardımıcı arkadaşa şimdiden Teşekkürler;

Dosya adı : 0001.ts
Dosya suresi : "35:43" gibi...
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Buyurun bakalım kod

Dosya_adi = ThisWorkbook.Path & "\Kralın Kızı.TS"



PHP:
#If Win64 Then
Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare PtrSafe Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
#Else
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
#End If


Sub zamanbul()
Dim yer As String
Dim lRet As Long
Dim sReturn As String
Dim Dosya_adi As String
Dim iMin As Integer
Dim iSec As Integer
Dim iSat As Integer
Dim i As Integer
'On Error Resume Next
Dosya_adi = ThisWorkbook.Path & "\Kralın Kızı.TS"
yer = Space$(255)
lRet = GetShortPathName(Dosya_adi, yer, Len(yer))
If lRet <> 0 Then
Dosya_adi = Left$(yer, InStr(yer, vbNullChar) - 1)
End If
mciSendString "open " & Dosya_adi & " type MPEGVideo alias mp3audio", 0, 0, 0
sReturn = Space$(256)
lRet = mciSendString("status mp3audio length", sReturn, Len(sReturn), 0&)
mciSendString "close mp3audio", 0, 0, 0
iSec = Int(Val(sReturn) / 1000)
iMin = Int(iSec / 60)
iSec = iSec - (iMin * 60)

If iMin > 59 Then
iSat = Int(iMin / 60)
iMin = iMin - (Int(iMin / 60) * 60)
End If
MsgBox Format$(iSat, "00") & ":" & Format$(iMin, "00") & ":" & Format$(iSec, "00")

End Sub
 
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
halit3

hocam kodu çalıştırdım, ama süreyi vermiyor.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Halit3;

Hocam bilemiyorum... kodu çalıştırdım, sadece 0:0:0 olarak mesaj kutusunu verdi.

Acaba dosya biçimi-Formatı ile alakalı olabilirmi?
 
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Söz konusu dosyanızın konumu bilgisayarda, C:\TestFolder\0001.ts ise; alternatif olarak, aşağıdaki linkte verilen kodu kullanabilirsiniz....

Sayfaya yazdırılan sonuçlardan bir tanesi, sizin aradığınız olacaktır... Kodda, dosya adını kendinize göre uyarlayın (bigbuckbunny.mp4 yerine 0001.ts yazın)

https://www.excelforum.com/excel-programming-vba-macros/1264533-get-video-time-from-simple-url.html#post5066560

.

Hocam kodu paylaşabilirmisiniz? özelden de gönderebilirsiniz.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kod zaten verdiğim linkte yazıyor .... neyi göndermemi istiyorsunuz anlamadım.

.
 
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Kod zaten verdiğim linkte yazıyor .... neyi göndermemi istiyorsunuz anlamadım.

.

Hocam; Login veya register istiyor. Linki açtığımda benim ekranımda sadece bu yazı var.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Linkteki kod budur;

Rich (BB code):
Sub Test2()
    ' Haluk - 16/02/2019
    '
    Dim objShell As Object
    Dim objFolder As Object
    Dim objFolderItem As Object
    Dim strInfo As String
    
    Set objShell = CreateObject("shell.application")
    Set objFolder = objShell.Namespace("C:\TestFolder")
    
    If (Not objFolder Is Nothing) Then
        Set objFolderItem = objFolder.ParseName("bigbuckbunny.mp4")
    
        If (Not objFolderItem Is Nothing) Then
            For i = 0 To 40
            strInfo = objFolder.GetDetailsOf(objFolderItem, i)
            If Not strInfo = Empty Then
                iRow = iRow + 1
                Cells(iRow, 1) = objFolder.GetDetailsOf(objFolder.Items, i)
                Cells(iRow, 2) = strInfo
            End If
            Next
        End If
        
        Set objFolderItem = Nothing
    End If
    
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub
 
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Haluk;


Hocam kodu çalıştırdım. düzgün biçimde çalışıyor. Sayfaya yazdırılan değerlerde SÜRE yok. malesef.

*.avi dosyası üzerinde denedim, SÜRE yi veriyor.
 
Son düzenleme:

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
C:\TestFolder\bbb24p_00.ts dosyası için bendeki durum böyle;


Capture.PNG

.
 
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Son düzenleme:

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
......
...
Bir de bana sadece SÜRE lazım. diğerleri şu an için gerekli değil.

süreyi bir değişkene alabilirsem, Yeterli olacaktır.
Bunu deneyin ... (muhtemelen bahsettiğiniz TS dosyasında bir sıkıntı var)

Kod:
Sub Test3()
    ' Haluk - 12/03/2019
    ' E-Posta: sa4truss@gmail.com
    '
    Dim objShell As Object, objFolder As Object, objFolderItem As Object
    Dim strInfo As String, myMsg As String
    
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace("C:\TestFolder")
    Set objFolderItem = objFolder.ParseName("bbb24p_00.ts")
    
    If (Not objFolderItem Is Nothing) Then
        strInfo = objFolder.GetDetailsOf(objFolderItem, 27)
        myMsg = IIf(strInfo = Empty, "Veri bulunamadi!", strInfo)
        MsgBox myMsg
    End If
    
    Set objFolderItem = Nothing
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub
.
 
Son düzenleme:
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Haluk hocam; son göndermiş olduğunuz kodda hiç sonuç yok.

mesaj kutusu gelmedi.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
14 No'lu mesajda revize ettiğim kodu deneyin ... İlgili veri varsa sonucu verir, eğer yoksa ikaz mesajı verir.

.
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Haluk;

Hocam denedim. Evet, avi dosyalarında sonuç Mesaj alıyorum... aynen istenen şekilde. Ama TS biçimlerinde hiçbir şekilde ileti yok. ya benim formatlarda bi sıkıntı var ( TS dosyalarında yani...) yada kod değişikliği gerekli..

Teşekkür ediyorum.
 
Katılım
17 Haziran 2008
Mesajlar
1,846
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Halit3;

Hocam sizin göndermiş olduğunuz koddaki durum;

*.avi = 00:00:00
*.ts = 00:00:00
*.mp4 = 00:00:00
*.mp3 = 00:05:52

şeklinde ... sadece mp3 dosyasında SÜRE yi verdi. diğerlerinde Süreyi 00:00:00 olarak verdi...

Linkleri de inceledim, kodları denedim. avi ve mp3 lerde SÜRE tamamdır. Sorun yok. Ama TS lerde Süre ile alakalı hiçbir bilgi yok.. yani uzunlukta yok...

Teşekkür ediyorum.
 
Son düzenleme:
Üst