Einige Reverse-Engineering mit ProcExp ergab eine rundll32.exe-Befehlszeile, die funktionierte. Hier ist ein Beispielprogramm, das es verwendet:
%Vor%Getestet auf Win7, kann ich nicht erraten, wie gut das bei anderen Versionen von Windows funktioniert.
Das sollte den Trick machen ...
%Vor%Obwohl Oded einen großen Vorteil hat - wenn Sie nicht genau wissen, wie / wo Sie solche Funktionen verwenden möchten, ist dies möglicherweise nicht die Lösung für Ihre Situation.
Aktuelle Kommentare zu dieser Antwort gehen zu zeigen, dass ich an erster Stelle nicht sehr detailliert war. Ein Problem wird auftreten, wenn Sie openas
eine Datei versuchen, die bereits das open
Verb für diesen Dateityp definiert hat. Wenn Sie versuchen, open
für eine Datei zu definieren, für die dieses Verb nicht definiert ist, treten Probleme auf. Das Problem wäre:
Win32Exception: der angegebenen Datei für diese Operation ist keine Anwendung zugeordnet
Abseits von meinem Kopf habe ich Thomas vorgeschlagen, dass Sie, um diese Art von Code in einer Produktionsanwendung zu verwenden, gründlich sein und vielleicht die Registrierung überprüfen oder anderweitig herausfinden müssen, ob eine Datei dies kann und sollte mit jedem gegebenen Verb geöffnet werden. Es könnte einfacher sein, wenn Sie ProcessStartInfo.Verbs
berücksichtigen. : Wenn Sie fileName
festgelegt haben, erhalten Sie eine Sammlung möglicher Verben, die dem Dateityp zugeordnet sind. Dies sollte es einfacher machen zu bestimmen, was mit welcher Datei zu tun ist.
Um es kurz zu machen, wie ich Thomas bereits erwähnt habe, müssen Sie vorsichtig sein und Ihrer Anwendung eine gewisse Komplexität / Intelligenz hinzufügen - diese Antwort ist sicherlich keine Catch-all-Lösung.
Verwenden Sie
%Vor%Die Datei wird mit dem Standardprogramm geöffnet, wenn kein Standardprogramm definiert ist, wird das Dialogfeld Öffnen mit angezeigt.
Sie können die Funktion verwenden:
%Vor%Sie haben ein Beispiel, um diese Funktion zu verwenden: dieser Link
Es gibt Tonnen von Shell-Beispielen im All-in-One-Code-Framework . Vielleicht können Sie sie ansehen, um zu sehen, ob ein Beispiel Funktionen hat, die Sie haben möchten.
Tags und Links c#