Quiero pedir ayuda para abrir un archivo desde la aplicación C# con la aplicación asociada. He intentado esto:Abrir archivo con la aplicación asociada
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);
o esto:
Process.Start(file);
en cadena file
en ambos ejemplos representa ruta completa al archivo que intenta abrir. Ahora, todo funciona bien, excepto las imágenes (jpg) con la aplicación ACDSee. Las asociaciones de Irfanview funcionan bien, los documentos de la oficina de MS también. Después de intentar abrir la imagen jpg asociada con acdsee, solo ejecuta el acdsee en el área de notificación y no abre el archivo.
he descubierto, que en el registro CLASSES_ROOT de imágenes * .jpg, hay un valor ACDSee.JPG como aplicación asociada, y en esta clave no está en concha:> Abierta> Comandoun camino :
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
y que me extraña que este /dde
es la razón, ¿por qué no puedo abrir el archivo. Me di cuenta de que en el mismo reg clave Shell-> Abrir hay alguna DDEExec
clave de entrada con el valor [open("%1")]
Por Irfan vista u otra aplicación para comprobar que no hay un ddeexec, sólo el comando normal como
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
que se puede ejecutar desde la línea de comandos después de la swaping% 1 para el nombre del archivo
, pero no podía ejecutar el comando desde la entrada ACDSee en la línea de comandos :(
Así que mi pregunta es, ¿cómo puedo configurar el ProcessStartInfo
objeto a asegúrese de que ejecutará todos los archivos como lo haría en el explorador mediante doubleclick, los estándares y esto DDEExec
? ¿Hay algo más como DDEExec
que deba tener en cuenta? gracias y lo siento por mi ES
Parece que ya lo intentó con 'Process.Start (file);'. –
"Así que mi pregunta, ¿cómo puedo configurar el objeto ProcessStartInfo para asegurarme de que ejecutará todos los archivos como lo haría en el explorador haciendo doble clic?": La respuesta es esa. Usó argumentos de línea de comando, lo que sea ... pero no invocación directa, tanto como yo veo. – Tigran
@Tigran Mario tiene razón, mientras escribía intenté su sugerencia como el segundo ejemplo ... Quería hacer mi pregunta de manera que claramente esta no es la solución correcta, ¡ya que no se abre el jpg! – Zavael