2014-06-11 4 views
5

Wie öffne Sie eine Datei zum Bearbeiten von C# -Code, d. H. Entspricht dem Benutzer mit der rechten Maustaste darauf und wählen Sie "Bearbeiten" statt "Öffnen"? Ich habe Process.Start(<filename>) für den Äquivalent von "Öffnen", aber ich brauche speziell die Option "Bearbeiten" in diesem Fall.Öffnen Sie eine Datei zum Bearbeiten von Code

Wenn es keine einfachere Möglichkeit gibt, gehe ich davon aus, dass ich wahrscheinlich die Registrierung für die 'Edit'-Aktion des Dateityps überprüfen und diese Aktion irgendwie aufrufen muss, aber ich bin mir nicht sicher wohin man schaut oder wie man es zuverlässig macht.

Wer kennt den besten Weg, dies zu tun?

+0

Welches Programm erhoffen Sie auf „Bearbeiten“ mit , und was ist der Dateityp? – samuelesque

+0

Das ist mein Punkt - ich weiß es nicht. Was auch immer der Benutzer bekommen würde, wenn er es selbst bearbeiten wollte. Ich kann nicht davon ausgehen, was auf dem PC des Benutzers ist, und Notepad ist wahrscheinlich nicht in jedem Fall angemessen. – Flynn1179

+0

Guten Ruf auf das Duplikat - Ich arbeite nicht mit Bildern speziell, aber die Lösung ist trotzdem gültig. – Flynn1179

Antwort

6

Nicht alle Erweiterungen haben die EditProcessStartInfo.Verb, aber die folgenden können Ihnen in einigen Fällen helfen.

var runFile = new ProcessStartInfo(pathToFile) {Verb = "edit"}; 
Process.Start(runFile); 

Wenn Sie, wenn das bearbeiten Verb, um überprüfen wollen, ist gültig, bevor der dazugehörigen Prozess starten, können Sie das folgende versuchen:

public bool HasEdit() 
{ 
    var startInfo = new ProcessStartInfo(pathToFile); 
    return startInfo.Verbs.Any(verb => verb == "edit"); 
} 
+0

Ich denke, ein Versuch/Fang hier, mit dem regulären "Open" Verfahren im Fang, würde die Dinge abdecken. –

+0

Ja, du könntest diese Route auch gehen. – samuelesque

+0

Ja, das habe ich gemacht. Ich muss jedoch zugeben, dass ich mich nicht auf das Abfangen von Ausnahmen verlässt, wenn es eine Alternative gibt. Nur weil Visual Studio mich winselt, wenn ich debugge. – Flynn1179

Verwandte Themen