Probleme beim starten von mp4 Dateien mit C# Windows Forms App?

1 Antwort

Ich habe auch schon versucht zb. von Windows Media Player den Pfad anzugeben, was nicht direkt in einem crash des Programms endet, allerdings öffnet sich dann halt einfach nichts.

Ich hab's eben mit einem Video getestet - läuft.

Das Problem liegt also nicht am Code, sondern an deiner Umgebung, oder an MP4, aber das glaube ich irgendwie nicht.

Wühl mal im Eventlog, vielleicht schreibt der Media Player eine Fehlermeldung dort rein, die mehr verrät.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
Nutzer4596 
Fragesteller
 04.02.2023, 03:27

Wo sehe ich den eventlog? An der mp4 selber liegt es nicht. Normal starten kann ich sie ja auch. Starten mit hilfe eines batch scripts klappt auch einwandfrei.

1
Nutzer4596 
Fragesteller
 04.02.2023, 03:34

Ich habe auch mal testweiße versucht die batch datei als resource zu meinem projekt hinzuzufügen und dann per code beim button click abrufen und starten zu lassen. Aber wieso auch immer findet er die bat datei nicht, obwhol ich 1 zu 1 den selben name benutze. Habe schon mit und ohne datei endung probiert. Ich bekomme halt direkt die message box reingedrückt.

private void materialButton18_Click(object sender, EventArgs e)
        {
            var resourceName = "StartMP4Normal.bat";
            var assembly = Assembly.GetExecutingAssembly();


            using (var stream = assembly.GetManifestResourceStream(resourceName))
            {
                if (stream == null)
                {
                    MessageBox.Show("Resource not found");
                    return;
                }


                using (var reader = new StreamReader(stream))
                {
                    var fileContent = reader.ReadToEnd();


                    var tempFile = Path.GetTempFileName();
                    File.WriteAllText(tempFile, fileContent);


                    var process = new Process
                    {
                        StartInfo = new ProcessStartInfo
                        {
                            FileName = tempFile,
                            UseShellExecute = false,
                            RedirectStandardOutput = true,
                            CreateNoWindow = true
                        }
                    };


                    process.Start();
                }
            }
        } 
1
Palladin007  04.02.2023, 15:30
@Nutzer4596

.bat als Resource ist unnötig.

Aber wenn Du unbedingt willst, reicht es für einen Test auch aus, die Datei neben die exe zu legen.
Oder als embedded resource, aber dann hat der Name noch den Namespace vorne dran, gibt über die Assembly auch eine Methode, die alle Namen abruft.
Oder die Datei wird einfach nur ins Zielverzeichnis kopiert, muss man aber auch einstellen.

0