Laden...

Dokument mit Process.Start öffnen: Mit Standardprogramm weiß ich, aber wie bekomme ich: Öffnen mit ?

Erstellt von schorge vor 9 Jahren Letzter Beitrag vor 9 Jahren 4.140 Views
S
schorge Themenstarter:in
129 Beiträge seit 2014
vor 9 Jahren
Dokument mit Process.Start öffnen: Mit Standardprogramm weiß ich, aber wie bekomme ich: Öffnen mit ?

Habe eine ImageList, mit einem Doppelklick

System.Diagnostics.Process.Start(item.FileName);

wird das Bild im StandartProgramm (z.B. WindowsBildanzeige) gestartet.

Nun will ich aber in einem ContexMenu ein
Öffnen mit ...
haben, damit ich das Bild/Datei z.b. mit Photoshop, Paint etc. öffnen kann.

Ich habe in der MSDN keine Lösung gefunden (vielleicht auch übersehen 😦)

J
251 Beiträge seit 2012
vor 9 Jahren

Ist die Bindung des ContexMenuStrip das Problem oder das gezielte Starten einer Anwendung mit Parameterübergabe?

Was wurde den schon unternommen außer in der MSDN nach einer Lösung zu suchen?

S
schorge Themenstarter:in
129 Beiträge seit 2014
vor 9 Jahren

Das KontexMenu ist kein Problem,
habe da ja auch andere Fktionen wie Kopieren etc.

Aber das Öffnen mit... würde ich gerne realisieren.

W
955 Beiträge seit 2010
vor 9 Jahren

Hallo,

das sollte in der Registry vermerkt sein welche Apps geeignet sind, Dateien eines bestimmten Typs zu öffnen (was also im Browser-Kontextmenü unter Öffnen mit... steht). Du solltest vllt diese Einträge auslesen und dann anbieten.

T
64 Beiträge seit 2010
vor 9 Jahren

Hi, so mach ich das....


        /// <summary>
        /// Öffnet die angegeben Datei, mit dem "Öffnen mit"-Dialog
        /// </summary>
        /// <param name="filepath">Pfad zur Datei</param>
        private static void OpenFileWith(string filepath)
        {
            try
            {
                Process.Start("rundll32.exe", "shell32.dll, OpenAs_RunDLL " + filepath);
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                MessageBox.Show(ex.Message);
            }
        }


S
schorge Themenstarter:in
129 Beiträge seit 2014
vor 9 Jahren

Top! Funzt Einwandfrei...

Vielen Dank!

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo schorge,

mit rundll+shell32 finde ich es etwas um die Ecke. Es sollte mit ProcessStartInfo.Verb gehen.

EDIT: Ah, ok, du willst wirklich das Kontextmenü angezeigt haben. Ich bin beim ersten Lesen davon ausgegangen, dass du das Dokument mit einem bestimmten/bekannten/vorgegeben Verb öffnen willst.

herbivore