Pregunta

UnhandledException: System.ComponentModel.Win32Exception: No application is associated with the specified file for this operation
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)

Hola a todos,

Me estoy haciendo la siguiente excepción en una máquina que estoy probando en al intentar utilizar Process.Start para abrir un archivo .csv. Creo que esto está sucediendo porque ninguna asociación de archivos ha sido ajustada para archivos .csv en este cuadro.

Entonces, ¿cómo evitar esta situación?

Fuerza del Process.Start se abran en el Bloc de notas? -? Lo ideal es que se debe abrir en Excel, pero ¿qué hacer si Excel entonces no existe en ese equipo

Gracias

¿Fue útil?

Solución

Si su aplicación depende de Excel está instalado para que funcione correctamente y con eficacia, a continuación, el usuario fallo al respecto. Detectar la excepción, y aparecerá una notificación para informarles sobre el problema, pero luego en que la notificación darles una opción para abrirlo en un editor alternativo, como el bloc de notas.

Esta todo se reduce a una buena UX - decirle al usuario, pero hacerlo de tal manera que ellos están capacitando mediante ofrece opciones para continuar, en lugar de ponerse en su camino y se detiene cuando un pequeño problema al igual que ocurre.

Editar haz exactamente lo que está haciendo - no asuma que tienen Excel, que puede tener algún otro visor / editor como OpenOffice. Lo que se ha registrado a csv, deja que haga que la cosa. No trate de ir y comprobar la asociación de archivos usted mismo, su aplicación puede no (probablemente no) tienen privilegios suficientes para ir fossicking alrededor en el Registro.

También es necesario comprobar si hay otras razones obvias para excepciones, como el usuario no tiene derechos para abrir el archivo de destino, esto podría ser debido a las restricciones impuestas a la carpeta o el propio archivo. Puede que el archivo está bloqueado, ya que todavía está abierta en otro proceso. Hay un montón de razones por las que su Process.Start podría fallar.

detectar la excepción, y si la causa hay ninguna aplicación asociada con el archivo luego la opción de ofrecer. Si elige los usuarios a utilizar el Bloc de notas, tratar de abrir el archivo en el Bloc de notas, pero aún atento a excepciones. Bloc de notas es una buena opción, no se mantiene un bloqueo en el archivo, pero aún está sujeta a las ACL de carpeta / archivo.

Otros consejos

Si se establece el ProcessStartInfo.ErrorDialog = true, el usuario será rápido con un cuadro de diálogo estándar de Windows: ver aquí

Leer el registro para ver si hay un programa asociado a la extensión del archivo antes de hacer la Process.Start. Buscar en HKEY_CLASSES_ROOT\.csv para ver que está registrado para manejar esa extensión de archivo, en su caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top