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 de la siguiente excepción en una máquina que estoy probando en cuando se intenta utilizar el Proceso.Inicio para abrir una .archivo csv. Creo que esto está sucediendo, porque no hay ningún archivo de la asociación ha sido fijado .los archivos csv en este cuadro.

Así ¿cómo evitar esta situación?

Fuerza el Proceso.Empezar a abrir en el Bloc de notas? – Idealmente debería abrirse en excel, pero ¿qué hacer si de excel, a continuación, no existe en ese equipo?

Gracias

OriginalEl autor baron | 2010-04-14

3 Comentarios

  1. 4

    Si su aplicación depende de Excel estar instalado para que funcione correctamente y con eficacia, entonces el error al usuario sobre esto. Captura la excepción, y aparecerá una notificación para informarles sobre el problema, pero entonces en que la notificación de darles una opción para abrir en una alternativa editor como el bloc de notas.

    Todo esto se reduce a una buena UX – dígale al usuario, pero hacerlo de tal manera que se les faculte al ofrecer opciones para continuar, en lugar de simplemente conseguir que en su camino y parar cuando un pequeño problema como el que se produce.

    Edición: Hacer exactamente lo que usted está haciendo – no asumir que han Excel, que puede tener algunos otros visor/editor como OpenOffice. Lo que está registrado a csv, deja que haga lo que tiene que hacer. No trate de ir y comprobar el archivo de la asociación de sí mismo, su aplicación no (probablemente no) tiene suficientes privilegios para ir fossicking alrededor en el registro.

    También es necesario comprobar por otras razones obvias excepciones, como el usuario no tiene derechos para abrir el archivo de destino, esto podría ser debido a las restricciones impuestas sobre la carpeta o el archivo en sí. Tal vez el archivo está bloqueado porque todavía está abierto en otro proceso. Hay un montón de razones por las que su Proceso.Inicio podría fallar.

    Capturar la excepción, y si la causa es ninguna aplicación asociada con el archivo, a continuación, les ofrecemos la opción. Si el usuario decide utilizar el Bloc de notas, de intentar abrir el archivo en el Bloc de notas, pero mirar hacia fuera para las excepciones. El bloc de notas es una buena opción, que no se mantiene un bloqueo en el archivo, pero aún está sujeta a la carpeta/archivo Acl.

    no dependen de él – pero para el usuario es mucho más fácil leer un archivo CSV como eso. ¿Cómo puedo comprobar si está instalado excel?
    Véase mi edición….
    Su respuesta tiene perfecto sentido. Saludos

    OriginalEl autor slugster

  2. 4

    Si establece el ProcessStartInfo.ErrorDialog = true, entonces el usuario será el símbolo del sistema con un diálogo estándar de windows: ver aquí

    OriginalEl autor AZ.

  3. 2

    Leer el registro para ver si hay un programa asociado con la extensión de archivo antes de hacer el proceso.inicio. Buscar en HKEY_CLASSES_ROOT\.csv para ver quién está registrado para manejar esa extensión de archivo, si los hubiere.

    ¿y si nada se asocia? la fuerza de abrir en el bloc de notas (id de decir que es bastante seguro asumir que la mayoría de xp cuadros de esta) y si hay una asociación abierta con la aplicación asociada? es de esperar que su poder obtener el nombre del proceso a partir del registro fácilmente suficiente?…
    Si nada está asociado a manejar el tipo de archivo, entonces lo que hay que hacer con él es para usted – el Bloc de notas puede ser una buena elección. Si su mirada en el registro indica que algo está registrado para manejar el tipo de archivo, lo iba a dejar Proceso.Empezar a ocuparse de los detalles de la realidad, descifrando el registro Abierto de verbos y otras cosas.

    OriginalEl autor dthorpe

Dejar respuesta

Please enter your comment!
Please enter your name here