Estoy trabajando en un programa que puede leer, escribir y exportar archivos, todas estas funciones funcionan bien y están casi perfeccionadas. Lo que me gustaría hacer ahora es poder elegir un archivo y decirle "Abrir con" (en el menú contextual del botón derecho en Windows XP) y hacer que mi aplicación pueda manejar el archivo dado. No tengo idea de dónde empezar o dónde buscar, así que pensé en preguntar aquí. Gracias.Añadiendo "Abrir con ..." Funcionalidad C#
Respuesta
Oye, creo que esto está definido en el registro. P.ej. MSAccess se define como:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit]
@="&Edit"
[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\command]
@="\"C:\\Programmer\\Microsoft Office\\OFFICE11\\MSACCESS.EXE\" /NOSTARTUP \"%1\""
[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec]
@="[SetForeground][ShellOpenDatabase \"%1\"]"
[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\Application]
@="Msaccess"
[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\IfExec]
@="[SHELLNOOP]"
[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\Topic]
@="ShellSystem"
También existe una GUI en Configuración de carpeta -> Tipos de archivo.
Br. Morten
la pregunta es cómo manejar el archivo después de que es abierto por mi aplicación – MHD
que aparezca el cuadro de diálogo Ejecutar y escriba: regedit
(Editor del Registro)
Ir a: HKEY_CLASSES_ROOT\*\shell
y crear una subclave denominada: "Abrir con YourApp", crear otra subclave bajo el recién creado llamado " mando". En su valor predeterminado, ingrese la ruta a su exe, luego agregue "% 1" al final del parámetro.
Es posible echar un vistazo a este artículo de Windows KB:
"Cómo asociar una extensión de archivo a su aplicación (Win32)" http://support.microsoft.com/kb/185453
Parece que da código de ejemplo para saber cómo hacerlo esto en VBScript (?), pero parece que pasa por las rutas de registro que debe mirar.
En Program.cs, agregue las líneas indicadas a continuación:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var mainForm = new MainForm();
// Add these lines:
// ----------------------------------------------
string[] args = Environment.GetCommandLineArgs();
if (args.Count() >= 2)
mainForm.LoadFile(args[1]);
// ----------------------------------------------
Application.Run(mainForm);
}
}
Dónde LoadFile(string filePath)
es su método que controla el archivo que se pasa desde el exterior.
- 1. Funcionalidad pura con F #
- 2. problema añadiendo minutos con plusMinutes
- 3. ToString Anulación() y añadiendo a ListBox C#
- 4. C# añadiendo un carácter en una cadena
- 5. Añadiendo referencia a estructuras en listas C#
- 6. Añadiendo char e int
- 7. métodos añadiendo dinámicamente
- 8. C# Constructor de predicados con funcionalidad "NOT IN"
- 9. Añadiendo token_authenticatable para diseñar con la migración
- 10. iPhone UIButton con funcionalidad UISwitch
- 11. Solaris - grep con funcionalidad O
- 12. Geany intellisense como funcionalidad para C++
- 13. cscope como funcionalidad para C++ (usando vim)
- 14. añadiendo local en el servidor
- 15. Abrir archivo con asociación
- 16. añadiendo GZIP de servicio WCF REST en C#
- 17. Añadiendo comportamientos de servicio WCF con el código
- 18. Abrir varios archivos (OpenFileDialog, C#)
- 19. añadiendo línea de regresión por grupo con ggplot2
- 20. atributos añadiendo a form_open_multipart
- 21. Añadiendo int al corto
- 22. añadiendo hijo en QMainWindow
- 23. Añadiendo ganchos a TortoiseHg
- 24. añadiendo comillas alrededor de la fecha y la hora, C#
- 25. iPhone Objective-C añadiendo programación botones alcance a un UISearchBar
- 26. C# transformación XSLT añadiendo y a la salida
- 27. Funcionalidad Readline en Windows con Python 2.7
- 28. Simulando la funcionalidad packusdw con SSE2
- 29. especializaciones plantilla de clase con funcionalidad compartida
- 30. Cómo abrir programáticamente Ejecutar C++?
pregunta es cómo saber si su aplicación se ejecuta por aplicación principal exe o con abrir con diálogo a su extensión de archivo de aplicación – MHD