vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Probleme mit GetShortPathName 
Autor: CAM-Andi
Datum: 06.10.08 21:55

Hallo,

ich bitte um Hilfe. Folgender Code:

Imports vb = Microsoft.VisualBasic
 
Private Declare Function GetShortPathName Lib "kernel32" _
      Alias "GetShortPathNameA" ( _
      ByVal lpszLongPath As String, _
      ByVal lpszShortPath As String, _
      ByVal cchBuffer As Long) As Long
Private Function GetMP3Length(ByVal strFileName As String) As Long
 
        Dim sShortName As String
        Dim RetVal As Long
        Dim sReturn As String
 
        ' Da die mciSendString Funktion mit langen Dateinamen
        ' nicht korrekt arbeitet, muss zuvor der kurze
        ' 8.3 Dateiname der MP3-Datei ermittelt werden.
        sShortName = Space$(256)
        RetVal = GetShortPathName(strFileName, sShortName, vb.Len(sShortName))
 
        If RetVal = 0 Then
            MsgBox("Es ist ein Fehler aufgetreten", vbCritical, "Fehler")
        Else
            strFileName = vb.Left(sShortName, CInt(RetVal))
            'strFileName = vb.Left(sShortName, InStr(sShortName, vbNullChar) - 
            ' 1)
        End If
 
        ' MP3-Datei öffnen
        mciSendString("open " & strFileName & " type MPEGVideo alias mp3audio", _
          CStr(0), 0, 0)
 
        ' Länge der Datei in Millisekunden auslesen
        sReturn = Space$(256)
        RetVal = mciSendString("status mp3audio length", sReturn, Len(sReturn), _
          0&)
 
        ' MP3-Datei schliessen
        mciSendString("close mp3audio", CStr(0), 0, 0)
 
        Return CLng(Val(sReturn))
 
    End Function
ich bekomme hier

strFileName = vb.Left(sShortName, CInt(RetVal))
eine "OverflowExcetion": Die arithmetische Operation hat einen Überlauf verursacht.

Wenn ich den anderen Code verwende:

strFileName = vb.Left(sShortName, InStr(sShortName, vbNullChar) - 1)
bekomme ich eine "ArgumentExcetion": Das Argument Length muss größer als oder gleich 0 (null) sein.

Wie muss ich das schreiben? Ziel ist die Spieldauer einer MP3 zu ermitteln. Arbeite mit VB 2008 Express unter XP SP3.

Vielen Dank im Voraus.

Gruß Andi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Probleme mit GetShortPathName2.363CAM-Andi06.10.08 21:55
Re: Probleme mit GetShortPathName1.736Christian2506.10.08 22:24
Re: Probleme mit GetShortPathName1.567CAM-Andi07.10.08 10:25
Re: Probleme mit GetShortPathName1.406ModeratorFZelle07.10.08 13:08
Re: Probleme mit GetShortPathName1.490CAM-Andi07.10.08 15:56
Re: Probleme mit GetShortPathName1.440ModeratorFZelle07.10.08 18:13
Re: Probleme mit GetShortPathName1.483Snoopy07.10.08 13:18
Re: Probleme mit GetShortPathName1.454CAM-Andi07.10.08 16:02
Re: Probleme mit GetShortPathName1.396Snoopy07.10.08 16:07

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel