2010-01-10 19 views
6

Al hacer clic derecho en un archivo en el Explorador de Windows, el elemento de menú "Abrir con" muestra una lista de aplicaciones disponibles, según el tipo de archivo cliqueado .Acceso mediante programación a la lista de menú "Abrir con" Windows Explorer desde .NET

Ver esta imagen como ejemplo:

"Open with" context menu in Windows Explorer http://magerquark.de/data/misc/open-with.png

Ahora quiero ser capaz de leer mediante programación la lista de aplicaciones para un archivo de extensión/tipo determinado (por ejemplo, "png") dentro de un C# Aplicación .NET 2.0.

E.g.

public class FileOpenInfo 
{ 
    public string ApplicationName { get; } 
    public string ApplicationPath { get; } 

    public static FileOpenInfo[] GetInformation(string extension); 
} 

Pregunta:

¿Es posible obtener esta lista?

Respuesta

5

La lista de programas asociados con una extensión de archivo se almacena en el Registro de Windows.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 

El Microsoft.Win32 contiene las clases para acceder al registro.
Para obtener más información, lea más here

+0

Gracias, voy a echar un vistazo. Supongo que la aplicación probablemente necesite permisos administrativos (que no tiene) para enumerar el registro. –

+3

Supongo que la enumeración será posible sin elevación. Asegúrese de utilizar la sobrecarga adecuada de la clase RegistryKey para abrirla como de solo lectura. – Zyphrax

Cuestiones relacionadas