none
Video über einen Button abspielen! RRS feed

  • Frage

  • Hallo,

    ich benutze Visual Basic 2010 noch nicht lange und brauche dringend Hilfe!

    Ich habe ein Programm programmiert und möchte, dass wenn ich auf einen Button klicke, sich der Standartplayer des Benutzers öffnet und ein Video abspielt. Das Programm möchte ich mit dem Video auf eine DVD brennen und der Pfad muss sich auf das Video auf der DVD beziehen.

    Am besten wäre es, wenn das Programm nicht installiert wird, sondern nur so startet.

    Ich brauche dringend Hilfe!

     

    Mittwoch, 25. August 2010 12:37

Antworten

  • Hallo,

    Da ich mein Programm ja von der DVD starten und ich das Video ausführen möchte weiß ich den Pfad nicht, da ich nicht weiß, in welches DVD-Laufwerk meine DVD reingelegt wird.

    wenn Deine Anwendung ebenfalls von CD/DVD gestartet wird, hast Du den Pfad grundsätzlich schon einmal über Application.StartupPath, wie Stefan bereits schrieb. Wenn das Video im gleichen Verzeichnis liegt, wie Deine Anwendung, kannst Du den Pfad einfach verbinden:

    Process.Start(IO.Path.Combine(Application.StartupPath, "myvideo.wmv")
    

    Außerdem wäre es gut, wenn ich über den 2ten Button den explorer öffnen könnte und Daten auf der DVD ansehen kann.

    Unter der o.g. Annahme:

    Process.Start.(Application.StartupPath)
    

    Ggf. kann man durch direkte Angabe von explorer.exe und Angabe weiterer Parameter die Art der Darstellung beeinflussen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Sonntag, 29. August 2010 13:25
    Moderator
  • Hallo,

    Natürlich kenne ich eine Autoru.inf datei!!!

    warum kennst Du dann bisher nicht die Grundlagen der Programmierung mit Visual Basic?

    Kann mir denn jmd. den Code hier hereinschreiben?

    Aus euren Hilfen werde ich nicht schlau!

    Vorgekaut und Einsatzbereit:

    Imports System.IO
    
    Public Class Form1
     Private Const VideoDateiName As String = "myvideo.wmv"
    
     Friend WithEvents Button1 As System.Windows.Forms.Button
     Friend WithEvents Button2 As System.Windows.Forms.Button
    
     Public Sub New()
    
      ' This call is required by the Windows Form Designer.
      InitializeComponent()
    
      ' Add any initialization after the InitializeComponent() call.
      Me.Button1 = New System.Windows.Forms.Button
      Me.Button2 = New System.Windows.Forms.Button
    
      '
      'Button1
      '
      Me.Button1.Location = New System.Drawing.Point(30, 30)
      Me.Button1.Name = "Button1"
      Me.Button1.Size = New System.Drawing.Size(111, 27)
      Me.Button1.TabIndex = 0
      Me.Button1.Text = "Video starten"
      Me.Button1.UseVisualStyleBackColor = True
      '
      'Button2
      '
      Me.Button2.Location = New System.Drawing.Point(201, 30)
      Me.Button2.Name = "Button2"
      Me.Button2.Size = New System.Drawing.Size(111, 27)
      Me.Button2.TabIndex = 0
      Me.Button2.Text = "Explorer"
      Me.Button2.UseVisualStyleBackColor = True
    
      Me.Controls.Add(Me.Button2)
      Me.Controls.Add(Me.Button1)
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim lFileName As String = Path.Combine(Application.StartupPath, VideoDateiName)
    
      If File.Exists(lFileName) Then
       Process.Start(lFileName)
    
      Else
       MsgBox(String.Format("Die Datei '{0}' konnte nicht gefunden werden.", lFileName), _
           MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, _
           "Videodatei nicht gefunden")
      End If
     End Sub
    
     Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
      Process.Start(Application.StartupPath)
     End Sub
    End Class
    
    

    Einzig musst Du noch den Namen der Videodatei anpassen (das habe ich Dir übersichtlich als Konstante VideoDateiName angelegt) und diese Videodatei neben Deine Anwendung legen. Zu Testzwecken kannst Du das Video zu Deinem Projekt hinzufügen und dieses ins Ausgabeverzeichnis kopieren lassen (Siehe Eigenschaften, nachdem Du es hinzugefügt hast).


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Montag, 6. September 2010 16:22
    Moderator
  • Hi,

    Ich habe ein Programm programmiert und möchte, dass wenn ich auf einen Button klicke, sich der Standartplayer des Benutzers öffnet und ein Video abspielt. Das Programm möchte ich mit dem Video auf eine DVD brennen und der Pfad muss sich auf das Video auf der DVD beziehen.

    Am besten wäre es, wenn das Programm nicht installiert wird, sondern nur so startet.

    in dem Fall bräuchtest Du wahrscheinlich lediglich über Process.Start einen Prozess zu starten und als Pfad den zur Videodatei anzugeben.

    Den Pfad kannst Du ggfs. auch relativ angeben (also ausgehend vom Anwendungsverzeichnis), alternativ kannst Du das aktuelle Anwendungsverzeichnis über Application.StartupPath auslesen und mittels Path.Combine dann mit dem relativen Pfad zur Videodatei zusammensetzen.

    Solange das Zielframework bereits installiert ist, sollte die Anwendung auch so starten. Ob das von CD/DVD auch geht, kann ich dir so nicht sagen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 25. August 2010 13:45
    Moderator

Alle Antworten

  • Hi,

    Ich habe ein Programm programmiert und möchte, dass wenn ich auf einen Button klicke, sich der Standartplayer des Benutzers öffnet und ein Video abspielt. Das Programm möchte ich mit dem Video auf eine DVD brennen und der Pfad muss sich auf das Video auf der DVD beziehen.

    Am besten wäre es, wenn das Programm nicht installiert wird, sondern nur so startet.

    in dem Fall bräuchtest Du wahrscheinlich lediglich über Process.Start einen Prozess zu starten und als Pfad den zur Videodatei anzugeben.

    Den Pfad kannst Du ggfs. auch relativ angeben (also ausgehend vom Anwendungsverzeichnis), alternativ kannst Du das aktuelle Anwendungsverzeichnis über Application.StartupPath auslesen und mittels Path.Combine dann mit dem relativen Pfad zur Videodatei zusammensetzen.

    Solange das Zielframework bereits installiert ist, sollte die Anwendung auch so starten. Ob das von CD/DVD auch geht, kann ich dir so nicht sagen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 25. August 2010 13:45
    Moderator
  • Hallo Mr.Expert,

    Stefan hat dir ja schon das Stichwort geschrieben.

    Nachfolgender Code sorgt dafür, dass nach dem Klicken der OpenFile-Dialog geöffnet wird der es dir erleichtert, das Video auszuwählen.

     

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then

                Dim PlayVideo As String = OpenFileDialog1.FileName

                Process.Start(PlayVideo)

            End If

        End Sub

     

    Wenn du den Pfad bereits kennst und fest vorgeben willst, mach folgendes:

     

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

            Process.Start("C:\Spass.wmv")

        End Sub

     


    Liebe Grüße Stefan
    Freitag, 27. August 2010 23:50
  • Hi,

    vielen Dank euch beiden für die Antworten!

    Da ich mein Programm ja von der DVD starten und ich das Video ausführen möchte weiß ich den Pfad nicht, da ich nicht weiß, in welches DVD-Laufwerk meine DVD reingelegt wird.

    Außerdem wäre es gut, wenn ich über den 2ten Button den explorer öffnen könnte und Daten auf der DVD ansehen kann.

     

    MfG

    Mr.Expert

    Sonntag, 29. August 2010 12:43
  • Hallo,

    Da ich mein Programm ja von der DVD starten und ich das Video ausführen möchte weiß ich den Pfad nicht, da ich nicht weiß, in welches DVD-Laufwerk meine DVD reingelegt wird.

    wenn Deine Anwendung ebenfalls von CD/DVD gestartet wird, hast Du den Pfad grundsätzlich schon einmal über Application.StartupPath, wie Stefan bereits schrieb. Wenn das Video im gleichen Verzeichnis liegt, wie Deine Anwendung, kannst Du den Pfad einfach verbinden:

    Process.Start(IO.Path.Combine(Application.StartupPath, "myvideo.wmv")
    

    Außerdem wäre es gut, wenn ich über den 2ten Button den explorer öffnen könnte und Daten auf der DVD ansehen kann.

    Unter der o.g. Annahme:

    Process.Start.(Application.StartupPath)
    

    Ggf. kann man durch direkte Angabe von explorer.exe und Angabe weiterer Parameter die Art der Darstellung beeinflussen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Sonntag, 29. August 2010 13:25
    Moderator
  • Hallo,

    ich kopiere das Programm aber auf DVD und starte es über autorun.inf!

     

    MfG

    Mr.Expert

    Sonntag, 29. August 2010 13:33
  • Hallo Mr. Expert,

    das mit dem zweiten Button wird durch:

    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
          Dim PlayVideo As String = OpenFileDialog1.FileName
          Process.Start(PlayVideo)
        End If

    erledigt. Wie der Name sagt, wird hier ein Dialog geöffent, der dir die Auswahl des Laufwerks und der Datei sehr einfach macht.
    Du muss natürlich vorher einen OpenFileDialog als Control hinzufügen und dann wäre es auch sinnvoll die Filterfunktion zu nutzen da du sonst die Qual der Wahl hast. Der Filter "Alle Dateien *.*| *.*| WAVE-Dateien | *.wav ... definiest du selbst.
    Wenn du den Autorun nutzt, musst du dir gar keine Gedanken machen (außer, die Autorun.inf).

     


    Liebe Grüße Stefan
    Montag, 30. August 2010 21:49
  • Morschen,

    ich kopiere das Programm aber auf DVD und starte es über autorun.inf!

    wie wär's, wenn Du auch mal die Antworten liest und sie sogar ggfs. ausprobierst. Thorsten und meine Wenigkeit haben genau darauf Bezug genommen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Montag, 30. August 2010 22:29
    Moderator
  • Hallo Stefan,

    du magst damit völlig Recht haben und alles was du geschrieben hast klappt.

    Da ich aber ein völliger Anfänger bin, kriege ich immer wenn ich das umsetze Probleme und dann klappt alles meistens nicht. Deshalb brauche ich am besten ein Beispiel, dass ich dann am besten umsetzen kann!

    MfG

    Mr.Expert

     

     

    Dienstag, 31. August 2010 13:39
  • Hallo Mr. Expert,

     

    ok, hier ein Beispiel (ich hoffe, das wir nun nicht so einfach, dass du dich beleidigt fühlst – das ist nicht meine Absicht).

     

    Folgende Annahmen:

     

    1. Du möchtest den Standardplayer und nicht den Windows MediaPlayer verwenden.
    2. Du möchtest zwei Buttons. Der eine öffnet den Dialog um eine Datei auszuwählen und der zweite spielt die ausgewählte Datei ab?

     

    Dann machst du eine neue Anwendung wobei die Größe der Form egal ist, da der Standardplayer ohnehin von dieser Form losgelöst ist (erst mal).

     

    Den ersten Button benennst du:

    BtnLoadFile den zweiten BtnPlayFile

    Als Text (nicht Name!!)  schreibst du:

     

    Load

    Play

     

    Nun brauchst du noch einen OpenFile-Dialog. Den holst du aus der ToolBox.

    Dort gibt es die Gruppe Dialogfelder. Darin findest du den „OpenFileDailog“ den ziehts du über Plug & Play auf deine Form. Du siehst dann unterhalb der Form den OpenFileDialog1 (den könnten wir umbenennen, machen wir aber erst mal nicht!)

     

    Damit hast du alle Controls die du benötigst.

    Nun kommt der komplette Code:

     

    Doppelklicke auf den ersten Button der mit Load beschriftet ist:

     

    Private Sub BtnLoadFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLoadFile.Click

           

    Try

                If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

                    Dim Play As String = OpenFileDialog1.FileName

                End If

            Catch ex As Exception

                MsgBox("Fehler :-)")

            End Try

     

        End Sub

     

    Nun Doppelklicke auf den ersten Button der mit Play  beschriftet ist:

     

     

    Private Sub BtnPlayFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPlayFile.Click

     

            Try

                Dim Play As String = OpenFileDialog1.FileName

                Process.Start(Play)

            Catch ex As Exception

                MsgBox("Fehler :-)")

            End Try

        End Sub

     

    Jeweils der Code inkl. Try und End Try ist dein Code.

    Starte dein Programm. Klicke auf Load. Dann erhätst du einen Dialog, den du bereits kennst. Durchsuche deinen PC und wähle eine Datei aus. Bestätige mit OK und klicke danach den Button Play.

     

    Ach ja, da war ja  noch die Sache mit dem Filter.

    Klicke auf den OpenFileDialog1 (unterhalb deiner Form). Im Projektmappenexplorer findest du die Eigenschaften für den OpenFileDialog1. In  der linken Spalte findest du den Eintrag FileName, rechts daneben steht OpenFileDialog1. Dieses OpenFileDialog1 löschst du. Der Grund ist der, das du sonst beim Öffnen des OpenFileDialog1 als Dateiname immer automatisch OpenFileDialog1 stehen hast. Wenn du das möchtest, lass es. Theoretisch kannst du einen eigenen kurzen Text wie Mr. Expert eingeben ;-)

    Direkt darunter findest du den Eintrag (linke Spalte) Filter. Dahinter steht nichts.

    Da füge mal

     

    Alle Dateien *.*| *.*| WAVE-Dateien | *.wav  | WMV-Dateien |*.wmv

     

    ein, und starte dein Programm.

    Wenn du nun den Dialog zum Laden einer Datei öffnest, hast du die Auswahl zwischen allen Dateiformaten, Wave – oder WMV-Dateien. Du kannst das nun mit MP3  …. beliebig erweitern.

     

    Hoffe das macht die Sache etwas klarer.


    Liebe Grüße Stefan
    Dienstag, 31. August 2010 16:15
  • Hallo Stefan,

    da hast du mich falsch verstanden.

    Ich habe das Video auf einer DVD und möchte einen Button haben, der den Standartplayer des Users öffnet und das Video abspielt.

    Der zweite Button soll den Explorer in einem bestimmten Ordner auf der DVD öffnen!

     

    MfG

     

    Mr.Expert

    Samstag, 4. September 2010 19:22
  • Hallo,

    Ich habe das Video auf einer DVD und möchte einen Button haben, der den Standartplayer des Users öffnet und das Video abspielt.

    Der zweite Button soll den Explorer in einem bestimmten Ordner auf der DVD öffnen!

    es wäre wirklich einfacher Dir zu helfen, wenn Du mal konkret sagen könntest, wo Du ein Problem mit der Umsetzung der bisher genannten Lösungswege hast. Eigentlich hast Du bereits alle Tipps erhalten, die Du für die Umsetzung brauchst. Du musst sie nur noch Deinen Bedürfnissen entsprechend anpassen. Ein Formular erstellen, dort zwei Buttons platzieren und in die Klickereignisse die passenden (Hint: hier genannten) Codes einfügen. Natürlich musst Du noch den Namen der abzuspielenden Videodatei angeben.

    Das sollte zu schaffen sein, wenn man sich wenigstens mal mit den Grundlagen seiner Programmierumgebung beschäftigt hat.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Samstag, 4. September 2010 20:07
    Moderator
  • So wie es hier geschrieben steht.

    Muss der Benutzer meines Programmes erst die Datei auswählen.

    Ich möchte aber, das mein Button das Video auf der DVD startet, ohne dass der User den Pfad angeben muss. Ich weiß ja nicht in welches Fach der User die DVD legt.

    MfG

    Mr.Expert

    Sonntag, 5. September 2010 10:17
  • Hallo,

    Ich möchte aber, das mein Button das Video auf der DVD startet, ohne dass der User den Pfad angeben muss. Ich weiß ja nicht in welches Fach der User die DVD legt.

    ich bezog meine Frage auf die Beiträge von Stefan Falz und mir, die eben genau diese Anforderung berücksichtigen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Sonntag, 5. September 2010 10:24
    Moderator
  • Hallo Mr. Expert,

    du machst es mir aber auch nicht leicht, dich zu verstehen. In diesem Thread findest du alle Infos, die du zur Lösung deines Problems benötigst. Hast du dir schon mal eine Autorun.inf angesehen?
    Eine Autorun.Inf kannst du ganz leicht mit jedem Texteditor erstellen und sieht wie folgt aus:

    [AUTORUN]
    OPEN=Anwendung.exe
    ICON=Anwendung.ico

    Natürlich kannst du anstelle der "Anwedung.exe" auch deine WMV-Datei angeben.
    Wenn diese Lösung für dich keine Lösung ist, haben Stefan Falz und Thorsten doch schon geantwortet.

     


    Liebe Grüße Stefan
    Sonntag, 5. September 2010 22:57
  • Hallo Stefan,

    [AUTORUN]
    OPEN=Anwendung.exe
    ICON=Anwendung.ico

    Natürlich kannst du anstelle der "Anwedung.exe" auch deine WMV-Datei angeben.

    natürlich kann man das nicht. 'open' erwartet eine ausführbare Datei, eine WMV Datei ist nicht ausführbar. Statt dessen kann man 'shellexecute' verwenden, damit können auch Dateien mit den ihnen zugeordneten Anwendungen geöffnet werden.

    Ausführliche Dokumentation zu Autorun.inf:

    Autorun.inf Entries
    http://msdn.microsoft.com/en-us/library/cc144200(VS.85).aspx

    Weiteres:

    HOW TO: Create an Autorun CD-ROM for Applications That You Create by Using Microsoft Visual Studio .NET
    http://support.microsoft.com/kb/818804/en-us/

    Ich lese aber bisher nicht heraus, dass genau dies das Problem des Fragestellers ist und ich befürchte schon fast, dass er uns sein Problem nicht vermitteln wird.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Montag, 6. September 2010 05:10
    Moderator
  • Natürlich kenne ich eine Autoru.inf datei!!!

    Kann mir denn jmd. den Code hier hereinschreiben?

    Aus euren Hilfen werde ich nicht schlau!

     

    MfG

     

    Mr.Expert

    Montag, 6. September 2010 15:59
  • Hallo,

    Natürlich kenne ich eine Autoru.inf datei!!!

    warum kennst Du dann bisher nicht die Grundlagen der Programmierung mit Visual Basic?

    Kann mir denn jmd. den Code hier hereinschreiben?

    Aus euren Hilfen werde ich nicht schlau!

    Vorgekaut und Einsatzbereit:

    Imports System.IO
    
    Public Class Form1
     Private Const VideoDateiName As String = "myvideo.wmv"
    
     Friend WithEvents Button1 As System.Windows.Forms.Button
     Friend WithEvents Button2 As System.Windows.Forms.Button
    
     Public Sub New()
    
      ' This call is required by the Windows Form Designer.
      InitializeComponent()
    
      ' Add any initialization after the InitializeComponent() call.
      Me.Button1 = New System.Windows.Forms.Button
      Me.Button2 = New System.Windows.Forms.Button
    
      '
      'Button1
      '
      Me.Button1.Location = New System.Drawing.Point(30, 30)
      Me.Button1.Name = "Button1"
      Me.Button1.Size = New System.Drawing.Size(111, 27)
      Me.Button1.TabIndex = 0
      Me.Button1.Text = "Video starten"
      Me.Button1.UseVisualStyleBackColor = True
      '
      'Button2
      '
      Me.Button2.Location = New System.Drawing.Point(201, 30)
      Me.Button2.Name = "Button2"
      Me.Button2.Size = New System.Drawing.Size(111, 27)
      Me.Button2.TabIndex = 0
      Me.Button2.Text = "Explorer"
      Me.Button2.UseVisualStyleBackColor = True
    
      Me.Controls.Add(Me.Button2)
      Me.Controls.Add(Me.Button1)
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim lFileName As String = Path.Combine(Application.StartupPath, VideoDateiName)
    
      If File.Exists(lFileName) Then
       Process.Start(lFileName)
    
      Else
       MsgBox(String.Format("Die Datei '{0}' konnte nicht gefunden werden.", lFileName), _
           MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, _
           "Videodatei nicht gefunden")
      End If
     End Sub
    
     Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
      Process.Start(Application.StartupPath)
     End Sub
    End Class
    
    

    Einzig musst Du noch den Namen der Videodatei anpassen (das habe ich Dir übersichtlich als Konstante VideoDateiName angelegt) und diese Videodatei neben Deine Anwendung legen. Zu Testzwecken kannst Du das Video zu Deinem Projekt hinzufügen und dieses ins Ausgabeverzeichnis kopieren lassen (Siehe Eigenschaften, nachdem Du es hinzugefügt hast).


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Montag, 6. September 2010 16:22
    Moderator
  • Hallo Thorsten,

    dann habe ich da entweder was durcheinander gebracht, verwechselt oder bei mir geht etwas, was nicht gehen dürfte ;-).
    Ok, ich habe das mit HTML-Seiten in jedem Fall schon gemacht.

     


    Liebe Grüße Stefan
    Montag, 6. September 2010 18:32