Process.Start() und PDF

  • C#
  • .NET 5–6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von MasterQ.

    Process.Start() und PDF

    Hallo,

    ich habe zum Öffnen von PDF bisher immer folgendes Konstrukt verwendet:

    C#-Quellcode

    1. ​Process.Start(PfadZumPDFDokument)


    Das klappt jetzt nimmer. Ich erhalte folgende Fehlermeldung:

    System.ComponentModel.Win32Exception: "An error occurred trying to start process 'Z:\02_Dokumente\docs\Rechnungen - Kopie\Rechnung_0001_2006-03-26.pdf' with working directory 'Z:\08_source\dotNET\DocManager\bin\Debug\net6.0-windows'. The specified executable is not a valid application for this OS platform."

    Ich wüsste jetzt nicht, was in den Einstellungen geändert wurde. Das einzige ist, dass jetzt Win11 mit .Net6 und nicht mehr Win 10 mit .Net Framework.

    Mit einem Doppelklick auf ein PDF wird nach wie vor der Acrobat Reader geöffnet und die Datei angezeigt. Der Extension pdf ist also immer noch dem Acrobat zugewiesen.

    Hat jemand einen Hinweis, warum der Reader nicht mehr automatisch gestartet wird?

    Gruß

    MQ
    .NET 6 tickt anders. Wahrscheinliche Lösung hier
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für den Link!

    Das unten war mein erster Ansatz, bis ich in einem anderen Projekt gesehen hatte, dass es kürzer geht, bzw. ging (siehe Subject).

    C#-Quellcode

    1. var fn = Path.Combine(docPfad, SelectedItem.Name);
    2. if (File.Exists(fn)) {
    3. var p = new Process();
    4. p.StartInfo.FileName = fn;
    5. p.StartInfo.UseShellExecute = true; //<= jetzt explizit anzugeben
    6. p.Start();
    7. }


    Der Defaultwert von UseShellExecute hat offensichtlich bei .Net6 von true auf false gewechselt. Das ist der Trick. UseShellExecute muss jetzt explizit auf true gesetzt werden. Beim Absetzen des ersten Posts war ich aber eigentlich der Meinung gewesen, ich hatte das true schon ausprobiert gehabt. hmmm.

    Immer diese Feinheiten :P

    MQ