Nuestro cliente (una aplicación de winforms) incluye un buscador de archivos. Me gustaría que el usuario pueda abrir el archivo seleccionado utilizando el controlador predeterminado del shell. ¿Cómo puedo hacer eso? He leído que debería usar la API de Win32 en lugar del registro, pero preferiría una solución que involucre solo .NET.¿Cómo abro un archivo usando el controlador predeterminado del shell?
Respuesta
EDIT: reciente, la respuesta más simple.
Puede simplemente usar Process.Start(filename)
. Esto se especifica en la docs for Process.Start
:
Inicio de un proceso por el que especifica el nombre del archivo es similar a escribir la información en el cuadro de diálogo Ejecutar de el menú Inicio de Windows. Por lo tanto, el nombre de archivo no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que se haya asociado la extensión con una aplicación instalada en el sistema. Por ejemplo el nombre del archivo puede tener una extensión .txt si ha asociado texto archivos con un editor, como el Bloc de notas, o puede tener un .doc si tiene archivos associated.doc con una herramienta de procesamiento de textos , como Microsoft Word. Del mismo modo, de la misma manera que el cuadro de diálogo Ejecutar puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el parámetro fileName. Por ejemplo, puede establecer el parámetro fileName en "Notepad.exe" o "Bloc de notas".
EDIT: original, respuesta complicada:
Si utiliza Process.Start
con el archivo como el "ejecutable" y especificar UseShellExecute = true
que sólo va a funcionar. Por ejemplo:
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
ProcessStartInfo psi = new ProcessStartInfo("test.txt");
psi.UseShellExecute = true;
Process.Start(psi);
}
}
Esto abre test.txt en el Bloc de notas.
De hecho, UseShellExecute=true
es el valor predeterminado, pero como es definitivamente necesario, me gusta especificarlo explícitamente para que el lector lo tenga más claro.
no está seguro de si está bien
System.Diagnostics.Process.Start(filePath);
System.Diagnostics.Process proporciona el contenedor nativo .Net alrededor de shell32.ShellExecute.
Consulte PInvoke.Net para obtener una descripción de ambas API y documentos de MSDN en MSDN.
- 1. Usando Ant, ¿cómo abro un archivo en un navegador?
- 2. ¿Cómo abro una imagen en el visor de imágenes predeterminado usando Java en Windows?
- 3. ¿Cómo abro un archivo si solo conozco parte del nombre del archivo?
- 4. Cómo abrir un archivo con el programa asociado predeterminado
- 5. Cifrar un archivo usando el script bash shell
- 6. ¿Cómo abro el proyecto Orchard?
- 7. Especifique un controlador predeterminado para ODBC
- 8. ¿Cómo abro una nueva ventana usando jQuery?
- 9. ¿Cómo abro el programa de correo predeterminado con un Sujeto y Cuerpo de forma multiplataforma?
- 10. "Cargar" un archivo desde el shell django
- 11. Usando el método bindData fuera del controlador
- 12. Cómo abro un archivo que se abre en otra aplicación
- 13. ¿Cómo abro un archivo en modo lectura/escritura en Vim?
- 14. Cómo abro un archivo transaccionado de Windows 7 en C#
- 15. El mapeo predeterminado del controlador Grails '/' no se resuelve correctamente
- 16. Applescript: ¿Cómo abrir un archivo con el programa predeterminado?
- 17. ¿Cómo configurar mi shell predeterminado en Mac?
- 18. ¿Cómo abro la ventana de terminal del emulador de Android?
- 19. ¿Cómo especificar el argumento predeterminado del método usando define_method?
- 20. ¿cómo pruebo el método del controlador usando rspec?
- 21. ¿Cómo puedo instalar un controlador usando InnoSetup?
- 22. C# Obtener el icono predeterminado de un archivo exe
- 23. Emacs ... como su shell predeterminado?
- 24. tamaño del archivo de shell de linux
- 25. ¿Cómo abro el navegador web predeterminado en Perl en cualquier sistema operativo?
- 26. Usando comandos de shell MongoDB en el controlador de MongoDB 10Gen
- 27. ¿Cómo abro un archivo para editar desde la línea de comando en Windows?
- 28. subir archivo usando jquery y controlador (ashx)
- 29. búsqueda de administrador de Django: cómo anular el controlador predeterminado?
- 30. Llame al HttpHandler asp.net predeterminado desde un controlador personalizado
'Process.Start (" C: \ temp \ test.xlsx ");' abra un *** archivo xlsx *** si ** Excel está instalado **. Si no está instalado, no sé. – Kiquenet