Datei mit Standardprogramm öffnen

Hallo!

Mit folgendem Code möchte ich eine Bilddatei (jpeg) mit einem externen Programm öffnen. Da ich ja nicht wissen kann, welche Programme auf anderen Computern installiert sind, möchte ich es einfach mit dem in Windows eingetragenen Standardprogramm öffnen.

Dim fiDatei As New FileInfo(gstBildpfad)
If fiDatei.Exists = True Then
 Shell(gstBildpfad, AppWinStyle.NormalFocus, False, -1)
End If

Obwohl ich mit FileInfo überprüfe, ob die Datei existiert, wirft mir die Shell-Funktion eine FileNotFoundException. Warum?

mfg
chris

Hi!
Was soll denn Shell() sein? Sieht mir verdächtig nach einer (legacy) VB (nicht VB.NET!) Funktion aus.
Wenn Du solche Funktionen verwendest, dann findest Du im VB-Brett u.U. eher Antworten.

Aber egal, um das, was Du offenbar willst, mit .NET Mitteln zu erreichen, schau’ Dir vll. mal die Klasse System.Diagnostics.Process an. Dort gibt es eine statische Methode Start(), über die auch Dateien mit dem entsprechenden Standardprogramm geöffnet werden können, wenn man vor den Dateinamen ein start einfügt.
Also in etwa:stuck_out_tongue:rocess.Start("start "+documentPath);

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Was soll denn Shell() sein? Sieht mir verdächtig nach einer
(legacy) VB (nicht VB.NET!) Funktion aus.

Diese Funktion gehört zu Microsoft.VisualBasic.

Aber egal, um das, was Du offenbar willst, mit .NET Mitteln zu
erreichen, schau’ Dir vll. mal die Klasse
System.Diagnostics.Process an. Dort gibt es
eine statische Methode Start(), über die
auch Dateien mit dem entsprechenden Standardprogramm geöffnet
werden können, wenn man vor den Dateinamen ein start
einfügt.
Also in etwa:Process.Start("start
"+documentPath);

Vielen Dank für den Tipp. Diese Klasse hatte ich mir zwar schon angeschaut, aber ich war der Meinung, dass man damit nur bestimmte ausführbare Programme starten kann. Jetzt funktioniert es, aber nur wenn ich den Dateipfad direkt übergebe. Wenn ich "start " davor einfüge, geht es nicht.

Danke.
mfg
chris