VLC Player mit Dateipfad ausführen.

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    VLC Player mit Dateipfad ausführen.

    Moin! :)
    Ich habe ein seltsames Problem festgestellt.
    Mein Ziel ist es per Button einen VLC-Player mit Pfad zu einer MP3 Datei auszuführen.
    Diesen Code verwende ich!
    Leider kann ich nicht jede Datei aufrufen.
    Es kommt folgende Fehlermeldung!
    BIG THX


    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. With Me.OpenFileDialog1
    5. .Title = "Suchen Sie sich eine Datei aus."
    6. .FileName = ""
    7. .Filter = "Alle Daten|*.*"
    8. .InitialDirectory = Application.StartupPath
    9. End With
    10. If Me.OpenFileDialog1.ShowDialog = DialogResult.OK Then
    11. Dim vlcProcess As New Process
    12. vlcProcess.StartInfo.FileName = "C:\Anwendungen\VLC\vlc.exe"
    13. vlcProcess.StartInfo.Arguments = Me.OpenFileDialog1.FileName
    14. vlcProcess.StartInfo.WorkingDirectory = Application.StartupPath
    15. vlcProcess.Start()
    16. End If
    17. End Sub
    18. End Class


    ' C:\Users\derBenutzer\Documents\Visual Studio 2017\Projects\WindowsApp15\WindowsApp15\bin\Debug\1.mp3
    Visual Basic.NET 8o
    MS-SQL
    8o
    @Cheffboss In Deinem Pfad sind Leerzeichen.
    Mach da mal Apostrophen drum herum.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hmm statt einer Festen Vlc.exe Verbindung sollte man vielleicht ne Registry Suche machen, damit wird die vlc Player Wiedergabe gestartet.
    Da sich der Pfad bei jedem auf dem PC ändern kann, nicht jeder hat ihn auf C ;)

    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Imports System.IO
    3. Imports System.Diagnostics
    4. Public Class Form1
    5. Private Function IsVLCInstalled() As Boolean
    6. Dim keyPath As String = "Software\VideoLAN\VLC"
    7. Dim registryKeysToCheck As RegistryKey() = {Registry.LocalMachine, Registry.CurrentUser}
    8. For Each baseKey In registryKeysToCheck
    9. Using key As RegistryKey = baseKey.OpenSubKey(keyPath)
    10. If key IsNot Nothing Then
    11. Return True ' Der Schlüssel existiert, VLC ist installiert
    12. End If
    13. End Using
    14. Next
    15. Return False ' Der Schlüssel existiert nicht, VLC ist nicht installiert
    16. End Function
    17. Private Function GetVLCPath() As String
    18. Dim keyPath As String = "Software\VideoLAN\VLC"
    19. Dim registryKeysToCheck As RegistryKey() = {Registry.LocalMachine, Registry.CurrentUser}
    20. For Each baseKey In registryKeysToCheck
    21. Using key As RegistryKey = baseKey.OpenSubKey(keyPath)
    22. If key IsNot Nothing Then
    23. Dim vlcPath As Object = key.GetValue("InstallDir")
    24. If vlcPath IsNot Nothing Then
    25. Return Path.Combine(vlcPath.ToString(), "vlc.exe")
    26. End If
    27. End If
    28. End Using
    29. Next
    30. Return Nothing ' VLC ist nicht installiert oder der Pfad wurde nicht gefunden
    31. End Function
    32. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    33. If IsVLCInstalled() Then
    34. With Me.OpenFileDialog1
    35. .Title = "Suchen Sie sich eine Datei aus."
    36. .FileName = ""
    37. .Filter = "Alle Daten|*.*"
    38. .InitialDirectory = Application.StartupPath
    39. End With
    40. If Me.OpenFileDialog1.ShowDialog = DialogResult.OK Then
    41. Dim selectedFile As String = Me.OpenFileDialog1.FileName
    42. If File.Exists(selectedFile) Then
    43. Dim vlcPath As String = GetVLCPath()
    44. If Not String.IsNullOrEmpty(vlcPath) Then
    45. Try
    46. Dim vlcProcess As New Process
    47. vlcProcess.StartInfo.FileName = vlcPath
    48. vlcProcess.StartInfo.Arguments = selectedFile
    49. vlcProcess.StartInfo.WorkingDirectory = Path.GetDirectoryName(selectedFile)
    50. vlcProcess.Start()
    51. Catch ex As Exception
    52. MessageBox.Show("Fehler beim Starten von VLC: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    53. End Try
    54. Else
    55. MessageBox.Show("Der Pfad zum VLC Player wurde nicht gefunden.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    56. End If
    57. Else
    58. MessageBox.Show("Die ausgewählte Datei existiert nicht.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    59. End If
    60. End If
    61. Else
    62. MessageBox.Show("Der VLC Player ist nicht auf Ihrem Computer installiert.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    63. End If
    64. End Sub
    65. End Class

    Edit: Pfad Fehler behoben, jetzt läuft das :D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Andy2002“ ()

    Andy2002 schrieb:

    Ich denke das war nicht das ziel von Cheffboss.

    Das stimmt wohl. Dennoch sollte man sich überlegen ob es sinnvoll ist externe Programme zu verwenden wenn man es selbst programmieren kann. Was ist wenn ein User kein VLC installiert hat? Muss dieser dann VLC zwangsweise installieren obwohl man das evtl. gar nicht möchte? Darüber hinaus bietet VLC auch ein AX an -> wiki.videolan.org/ActiveX/ Nix Pfad suchen usw. Einfach das AX verwenden und gut ist obwohl hier auch der VLC installiert sein muss.
    Mfg -Franky-

    -Franky- schrieb:

    Was ist wenn ein User kein VLC installiert hat? Muss dieser dann VLC zwangsweise installieren obwohl man das evtl. gar nicht möchte?
    Dann muss er natürlich programmieren lernen, wenn er es nicht kann. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!