Ich möchte um Hilfe bitten beim Öffnen einer Datei von C# App mit zugehöriger App. Ich versuchte dies:Öffnen Sie die Datei mit der zugehörigen Anwendung
ProcessStartInfo pi = new ProcessStartInfo(file);
pi.Arguments = Path.GetFileName(file);
pi.UseShellExecute = true;
pi.WorkingDirectory = Path.GetDirectoryName(file);
pi.FileName = file;
pi.Verb = "OPEN";
Process.Start(pi);
oder dies:
Process.Start(file);
wo String file
in beiden Beispielen vollständigen Pfad zur Datei zu öffnen versucht, darstellt. Jetzt funktioniert alles gut, außer die (jpg) Bilder mit ACDSee App. Irfanview-Verbände funktionieren gut, auch MS-Office-Dokumente. Nach dem Versuch, das jpg-Bild zu öffnen, das acdsee zugeordnet ist, wird nur der acdsee im Infobereich ausgeführt und die Datei wird nicht geöffnet.
ich entdecken, dass in der Registrierung CLASSES_ROOT für * .jpg Bilder gibt es einen ACDSee.JPG Wert als assoziierte Anwendung, und unter diesem Schlüssel gibt es in dem Shell-> Open-> Befehl ein Pfad :
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
und ich Ding, dass diese seltsamen /dde
der Grund ist, warum ich die Datei nicht öffnen kann. Ich erkannte, dass in der gleichen Ausrichtungs-Schlüssel Shell-> Öffnen dort einige DDEExec
Tasteneingabe mit Wert ist [open("%1")]
Für Irfan View oder anderen geprüft App ist kein ddeexec, nur der normale Befehl wie
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
die
nach swaping das% 1 für Dateinamen von der Kommandozeile ausgeführt werden kann, aber ich konnte den Befehl von acdsee Eintrag in der Befehlszeile :(
Also meine Frage ist, wie kann ich einrichten nicht ausgeführt die ProcessStartInfo
Objekt zu sicherstellen, dass es alle Dateien wie im Explorer durch Doppelklick ausgeführt werden würde, die Standards und diese DDEExec
Einsen? Gibt es etwas anderes wie DDEExec
, dass ich bewusst sein sollte? Dank und sorry für mein EN
Es scheint, als ob er das bereits mit 'Process.Start (file);'. –
"Also meine Frage, wie kann ich das ProcessStartInfo-Objekt einrichten, um sicherzustellen, dass es alle Dateien so ausführt, wie es im Explorer durch Doppelklick geschehen würde": Die Antwort ist das. Er benutzte Befehlszeilenargumente, was auch immer ... aber nicht direkte Aufrufe, so viel ich sehe. – Tigran
@Tigran Mario hat recht, wie ich geschrieben habe, habe ich deinen Vorschlag als zweites Beispiel versucht ... ich wollte meine Frage in der Weise stellen, dass dies eindeutig nicht die richtige Lösung ist, da das JPG nicht geöffnet ist! – Zavael